]> dgit.raspbian.org Git - vtk9.git/commitdiff
vtk9 (9.6.2+ds-3) unstable; urgency=medium
authorMaximiliano Curia <maxy@debian.org>
Tue, 13 Oct 2026 10:08:50 +0000 (12:08 +0200)
committerMaximiliano Curia <maxy@debian.org>
Tue, 13 Oct 2026 10:08:50 +0000 (12:08 +0200)
  * Team upload.

  [ Dominique Belhachemi ]
  * Fix Debian's copyright section

  [ Adrian Bunk ]
  * Fix ppc64 and powerpc FTBFS with ppc-constexpr.patch
  * debian/rules: Reduce debug info on alpha and sh4
  * debian/rules: drop obsolete libatomic workaround

  [ Maximiliano Curia ]
  * debian/rules: Track per-worker and total build memory, tune
    guess-concurrency for 32/64-bit architectures
  * d/README.source: document use of guess-concurrency and
    d/memory-tracker.py

[dgit import unpatched vtk9 9.6.2+ds-3]

74 files changed:
1  2 
debian/README.source
debian/changelog
debian/control
debian/copyright
debian/gbp.conf
debian/libvtk9-dev.install
debian/libvtk9-java.install
debian/libvtk9-java.lintian-overrides
debian/libvtk9-java.manpages
debian/libvtk9-qt-dev.install
debian/libvtk9.6-qt.install
debian/libvtk9.6-qt.lintian-overrides
debian/libvtk9.6.install
debian/libvtk9.6.lintian-overrides
debian/manpages/pvtkpython.1
debian/manpages/vtkParseJava-9.6.1
debian/manpages/vtkProbeOpenGLVersion-9.6.1
debian/manpages/vtkWrapHierarchy-9.6.1
debian/manpages/vtkWrapJava-9.6.1
debian/manpages/vtkWrapJavaScript-9.6.1
debian/manpages/vtkWrapPython-9.6.1
debian/manpages/vtkWrapPythonInit-9.6.1
debian/manpages/vtkWrapSerDes-9.6.1
debian/manpages/vtkpython.1
debian/memory-tracker.py
debian/not-installed
debian/patches/100_add_missing_gl_header.patch
debian/patches/10_matplotlib.patch
debian/patches/20_do_not_link_against_socket.patch
debian/patches/50_fix_python-modules_path.patch
debian/patches/60_fix_path_perl.patch
debian/patches/80_fix_ppc64_ftbfs.patch
debian/patches/84_vtkQWidgetTexture_no_vtkOpenGLCheckErrorMacro.patch
debian/patches/97_reproducible_builds.patch
debian/patches/98_fix_mpi4py.py
debian/patches/99_fix_ftbfs.patch
debian/patches/build_reproducibility.patch
debian/patches/cve_2025_57106.patch
debian/patches/cve_2025_57107.patch
debian/patches/cve_2025_57108.patch
debian/patches/cve_2025_57109.patch
debian/patches/dont_install_bundled_cmake_finders.patch
debian/patches/dont_install_h5hut_config_h.patch
debian/patches/fix_invalid_escape_sequence_testing.patch
debian/patches/fix_sequence_h_utf8_encoding.patch
debian/patches/fix_xmlwriter_ascii_implicit_cellarray_segfault.patch
debian/patches/gdal-3.13.patch
debian/patches/matplotlib_nullptr_s390x.patch
debian/patches/ppc-constexpr.patch
debian/patches/privacy_breach_example_geometryviewer.patch
debian/patches/python_version_library_suffix.patch
debian/patches/series
debian/python3-vtk9.install
debian/python3-vtk9.manpages
debian/python3-vtk9.pydist
debian/rules
debian/source/format
debian/tests/buildBoolean
debian/tests/buildDistance
debian/tests/buildPNG
debian/tests/buildPoint
debian/tests/buildVTP
debian/tests/buildVTU
debian/tests/control
debian/tests/pythonMetadata
debian/tests/writeVTUAsciiImplicitCellTypes
debian/upstream/metadata
debian/vtk9-doc.doc-base
debian/vtk9-doc.docs
debian/vtk9-doc.links
debian/vtk9-examples.examples
debian/vtk9.install
debian/vtk9.manpages
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..668fc4edce9e1e28d752ee93e93cbf5c364cd12b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,67 @@@
++vtk9 for Debian
++===============
++
++Source Repackaging
++------------------
++The upstream source tarball is repacked with the +ds suffix using Files-Excluded
++in debian/copyright to drop bundled third-party libraries and prebuilt binaries.
++
++Build Notes and Concurrency Management
++---------------------------------------
++The package builds against all supported Python versions using py3versions -s
++and uses guess-concurrency to limit memory usage during parallel compilation.
++
++VTK 9 includes heavily templated C++ modules (in particular VTK::vtkviskores
++on 64-bit architectures, and bulk array instantiations on 32-bit architectures)
++where individual translation units can require substantial memory:
++  - 64-bit architectures: 1 peak worker up to ~6.5 GB, others ~2.0 GB.
++  - 32-bit architectures: 1 peak worker up to ~2.5 GB, others ~1.1 GB.
++
++In debian/rules, CONCURRENCY_MEM is configured accordingly:
++  - 64-bit: CONCURRENCY_MEM = 6.5G,2G
++  - 32-bit: CONCURRENCY_MEM = 2.5G,1.1G
++
++guess_concurrency uses these values to calculate an appropriate --max-parallel
++argument for debhelper, preventing out-of-memory (OOM) failures or worker aborts
++on memory-constrained builders.
++
++Memory Profiling with debian/memory-tracker.py
++----------------------------------------------
++The script debian/memory-tracker.py is provided to measure memory consumption
++during the build and calibrate the CONCURRENCY_MEM values for new VTK releases.
++
++When active, it:
++  1. Acts as CMAKE_C_COMPILER_LAUNCHER and CMAKE_CXX_COMPILER_LAUNCHER to track
++     per-worker peak resident memory (ru_maxrss) and CPU duration across all
++     translation units.
++  2. Samples background cgroup memory, process-tree RSS, and minimum available
++     RAM throughout dh_auto_build.
++  3. Outputs a comprehensive distribution analysis (unweighted per translation
++     unit and time-weighted per CPU-second) with parametric percentiles
++     (Mean as p50, Mean + Z*sigma) and empirical sample quantiles directly into
++     the build log.
++  4. Suggests balanced (Mean) and conservative (p75 / p95) arguments for
++     guess_concurrency --require-mem.
++
++Disabling for Production Builds (Default)
++~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++To avoid the overhead of spawning Python launcher wrappers, file locking, and
++monitoring threads during official Debian archive builds (buildd), the memory
++tracker is DISABLED by default (TRACK_MEMORY=0). Production builds invoke the
++compiler directly with zero extra overhead.
++
++Enabling for Profiling / Test Builds
++~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++To enable memory tracking on a test build (e.g. on debusine, sbuild, or local):
++  - Via DEB_BUILD_OPTIONS:
++      DEB_BUILD_OPTIONS="trackmem" dpkg-buildpackage -b
++      # or in sbuild:
++      sbuild --deb-build-options="trackmem"
++
++  - Via make / environment variable:
++      TRACK_MEMORY=1 dpkg-buildpackage -b
++
++  - Or explicitly in debian/rules by setting TRACK_MEMORY ?= 1.
++
++To explicitly force disable it even if set in environment:
++      DEB_BUILD_OPTIONS="notrackmem"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c033311ecebb9665edbd1e9160267f6a8521a6dc
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,827 @@@
++vtk9 (9.6.2+ds-3) unstable; urgency=medium
++
++  * Team upload.
++
++  [ Dominique Belhachemi ]
++  * Fix Debian's copyright section
++
++  [ Adrian Bunk ]
++  * Fix ppc64 and powerpc FTBFS with ppc-constexpr.patch
++  * debian/rules: Reduce debug info on alpha and sh4
++  * debian/rules: drop obsolete libatomic workaround
++
++  [ Maximiliano Curia ]
++  * debian/rules: Track per-worker and total build memory, tune
++    guess-concurrency for 32/64-bit architectures
++  * d/README.source: document use of guess-concurrency and
++    d/memory-tracker.py
++
++ -- Maximiliano Curia <maxy@debian.org>  Tue, 13 Oct 2026 12:08:50 +0200
++
++vtk9 (9.6.2+ds-2) unstable; urgency=medium
++
++  * Team upload.
++  * Fix arch-indep FTBFS with multiple supported Python versions, build
++    only the documentation.
++  * Build VTK once and rebuild only the Python parts for non-default
++    Python versions.
++  * Add Python version suffix to Python-dependent libraries for
++    non-default Python versions.
++
++ -- Maximiliano Curia <maxy@debian.org>  Mon, 28 Sep 2026 16:26:34 +0200
++
++vtk9 (9.6.2+ds-1) unstable; urgency=medium
++
++  * Team upload.
++  * New repacked upstream version 9.6.2+ds using +ds suffix.
++  * Build for all supported python3 versions.
++  * Use guess-concurrency to limit parallel workers.
++  * Fix doxygen documentation path for versioned build directory.
++  * Set writable HOME and XDG_CACHE_HOME for Fontconfig.
++  * Fix invalid escape sequence in testing.py. (Closes: #1079541, #1142155)
++  * Backport upstream GLTF security fixes:
++    - CVE-2025-57106: Fix invalid access in vtkGLTFDocumentLoader.
++      (Closes: #1119821)
++    - CVE-2025-57107: Fix invalid access in vtkGLTFDocumentLoader.
++      (Closes: #1119822)
++    - CVE-2025-57108: Fix invalid vector access in vtkGLTFImporter.
++      (Closes: #1119823)
++    - CVE-2025-57109: Fix invalid access in vtkGLTFImporter.
++      (Closes: #1119824)
++  * libvtk9-dev no longer ships uncompilable headers. (Closes: #1035426)
++  * Disable IOParallelXdmf3 on 32-bit architectures. (Closes: #1126484)
++  * Update debian/copyright. (Closes: #1140541)
++  * Fix manpage filenames and install section for wrapper tools.
++  * Do not install internal h5hut config.h into public headers.
++  * Fix character encoding in Sequence.h.
++  * Remove external CDN script reference in GeometryViewer example.
++  * Deduplicate dependencies in debian/control.
++  * Drop unused debian/libvtk9-dev.lintian-overrides.
++  * Register HTML documentation with doc-base.
++
++ -- Maximiliano Curia <maxy@debian.org>  Fri, 25 Sep 2026 20:30:00 +0200
++
++vtk9 (9.6.2+dfsg1-6) unstable; urgency=medium
++
++
++  * Team upload.
++  * Drop unused 121_add_support_for_loong64.patch
++  * Do not install VTK's bundled FindHDF5.cmake (Closes: #1147167)
++
++ -- Dominique Belhachemi <domibel@debian.org>  Sat, 12 Sep 2026 09:35:02 -0400
++
++vtk9 (9.6.2+dfsg1-5) unstable; urgency=medium
++
++  [ Dominique Belhachemi ]
++  * Team upload.
++  * Drop libdouble-conversion-dev build dependency
++    Upstream removed ThirdParty/doubleconversion in v9.6.0
++  * Drop unused 30_drop_medical_example.patch
++
++  [ Francesco Ballarin ]
++  * Automatically install vtk-{version}.dist-info/METADATA file with minimal
++    metadata including only the version number, so that a end user running
++    "pip show vtk" correctly receives the answer that the package is installed
++    and its version. Closes: #1096135.
++
++ -- Francesco Ballarin <ballarin@debian.org>  Fri, 28 Aug 2026 08:57:41 +0000
++
++vtk9 (9.6.2+dfsg1-4) unstable; urgency=medium
++
++  * Team upload.
++  * debian patch fix_xmlwriter_ascii_implicit_cellarray_segfault.patch
++    now also writes the cell types instead of only guarding the crash.
++    The templated writer already returned early on a null iterator, so
++    the array was written empty and, WriteInlineData() discarding the
++    return value, ascii .vtu files were silently written without any
++    cell at all.
++  * autopkgtest writeVTUAsciiImplicitCellTypes: read the file back and
++    check the number of cells, the previous version passed on such an
++    empty types array.
++
++ -- Anton Gladky <gladk@debian.org>  Tue, 28 Jul 2026 16:20:19 +0200
++
++vtk9 (9.6.2+dfsg1-3) unstable; urgency=medium
++
++  * Team upload.
++  * debian patch fix_xmlwriter_ascii_implicit_cellarray_segfault.patch
++    fixes segfault writing ascii .vtu files with implicit cell type
++    arrays, fixing yade FTBFS.
++  * add autopkgtest writeVTUAsciiImplicitCellTypes covering this bug.
++
++ -- Anton Gladky <gladk@debian.org>  Mon, 27 Jul 2026 16:37:42 +0200
++
++vtk9 (9.6.2+dfsg1-2) unstable; urgency=medium
++
++  * Team upload
++  * upload vtk 9.6 to unstable (transition #1141369)
++
++ -- Drew Parsons <dparsons@debian.org>  Tue, 14 Jul 2026 11:40:34 +0200
++
++vtk9 (9.6.2+dfsg1-1exp5) experimental; urgency=medium
++
++  * Team upload.
++  * install vtkQImageToImageSource.h and vtkQWidget* headers to
++    libqt9-qt-dev not libqt9-dev. See Bug#1035426.
++  * debian patch build_reproducibility.patch maintains build
++    reproducibility by dropping XDMF_SYSTEM (which is set to
++    CMAKE_SYSTEM, including the Linux version at build time) from
++    XdmfConfig.h in xdmf2 headers. XDMF_SYSTEM is not actually used by
++    the code. Closes: #1120818
++  * fix contents of debian/python3-vtk9.pydist
++
++ -- Drew Parsons <dparsons@debian.org>  Thu, 02 Jul 2026 00:30:08 +0200
++
++vtk9 (9.6.2+dfsg1-1exp4) experimental; urgency=medium
++
++  * Team upload.
++  * debian/rules: run manual dh_install to install viskores.pc before
++    deleting excess files from libvtk9-dev, otherwise Qt files
++    (intended for libvtk9-qt-dev) get reinstalled
++
++ -- Drew Parsons <dparsons@debian.org>  Fri, 26 Jun 2026 14:07:31 +0200
++
++vtk9 (9.6.2+dfsg1-1exp3) experimental; urgency=medium
++
++  * Team upload.
++  * list viskores.pc in debian/not-installed to work around Bug#972222
++    in debhelper. viskores.pc is not built on 32-bit systems
++    and so is installed conditionally to libvtk9-dev in debian/rules.
++    This non-installed entry is needed for arch-independent builds.
++
++ -- Drew Parsons <dparsons@debian.org>  Thu, 25 Jun 2026 18:24:31 +0200
++
++vtk9 (9.6.2+dfsg1-1exp2) experimental; urgency=medium
++
++  * Team upload.
++  * install viskores.pc to libvtk9-dev conditionally:
++    viskores does not build on 32-bit arches
++  * debian/tests: #include <iostream> in tests using std::cout
++
++ -- Drew Parsons <dparsons@debian.org>  Tue, 23 Jun 2026 09:26:05 +0200
++
++vtk9 (9.6.2+dfsg1-1exp1) experimental; urgency=medium
++
++  * Team upload.
++  * New upstream release. New ABI 9.6
++    - applies debian patches 40_viskores.patch,
++      findEXPAT_version_fix_MR12826.patch,
++      numpy_drop_in1d_MR12693.patch
++    - provides vtkWrapJavaScript-9.6 executable (in vtk9 package)
++      and pkgconfig file for viskores (in libvtk9-dev)
++    - replaces ThirdParty/h5part with ThirdParty/h5hut
++      (still licensed with BSD-3-clause-notice-2)
++  * provide debian/python3-vtk9.pydist to declare python3-vtk9 as
++    python package vtk. Closes: #1096135
++  * Depends: libmariadb-dev rather than default-libmysqlclient-dev
++    mariaDB has sufficiently evolved from mySQL to stop claiming
++    compatibility. Note that VTK9 nevertheless still treats mariaDB as
++    a substitute for mySQL. Activate SQL support by configuring modules
++    IO::SQL and IO::MySQL. Interface with QtSQL with GUISupportQtSQL=YES
++    Closes: #1137152
++  * Build-Depends: libpq-dev and configure IO::PostgreSQL module
++    to activate PostgreSQL support
++  * use external exprtk (VTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=ON)
++    Build-Depends: libexprtk-dev. Closes: #1094438
++    debian/copyright: Files-Excluded: ThirdParty/exprtk/vtkexprtk
++  * drop patch version from name of manpages
++  * libvtk9.6-qt: drop redundant Breaks: Provides: Replaces: libvtk9.1-qt
++
++ -- Drew Parsons <dparsons@debian.org>  Sun, 21 Jun 2026 13:43:43 +0200
++
++vtk9 (9.5.2+dfsg4-5) unstable; urgency=medium
++
++  * Team upload.
++  * debian patch numpy_drop_in1d_MR12693.patch applies upstream
++    MR#12693 to remove numpy.in1d, no longer provided by numpy 1.24
++    (use numpy.isin instead). Closes: #1137015
++  * Standards-Version: 4.7.4
++
++ -- Drew Parsons <dparsons@debian.org>  Mon, 25 May 2026 21:11:13 +0200
++
++vtk9 (9.5.2+dfsg4-4) unstable; urgency=medium
++
++  * Team upload.
++  * mark libvtk9-dev as Multi-Arch: no, not Multi-Arch: same
++    since some header files contain arch-dependent definitions
++    (vtkOptions.h, vtkEndian.h, cgnstypes.h, XdmfConfig.h setting
++    endianness, int size, etc). Closes: #1133759
++    Consequently drop Multi-Arch: same from libvtk9-qt-dev
++    to avoid including inconsistent header definitions
++  * debian patch gdal-3.13.patch enables build with gdal 3.13.
++    Thanks Bas Couwenberg. Closes: #1134162
++
++ -- Drew Parsons <dparsons@debian.org>  Fri, 08 May 2026 14:41:38 +0200
++
++vtk9 (9.5.2+dfsg4-3) unstable; urgency=medium
++
++  * [07276b5] Relax upstream boost version in substvars. (Closes: #1130578)
++
++ -- Anton Gladky <gladk@debian.org>  Mon, 16 Mar 2026 06:12:29 +0100
++
++vtk9 (9.5.2+dfsg4-2) unstable; urgency=medium
++
++  * [7f37aac] Add versioned libboost-dev dependency.
++              (Closes: #1129768, #1129770, #1129773)
++  * [1f682b2] Remove Priority and RRR fields
++
++ -- Anton Gladky <gladk@debian.org>  Tue, 10 Mar 2026 06:07:36 +0100
++
++vtk9 (9.5.2+dfsg4-1) unstable; urgency=medium
++
++  * Team upload.
++  * Add back WebCore, WebGLExporter and WebPython modules for future use
++    within trame and pyvista.
++    - This required a repack 9.5.2+dfsg4, because the Web directory was
++      previously ignored in d/copyright.
++
++ -- Francesco Ballarin <ballarin@debian.org>  Tue, 03 Mar 2026 18:23:44 +0000
++
++vtk9 (9.5.2+dfsg3-8) unstable; urgency=medium
++
++  * Team upload.
++  * sh4: override dh_dwz to not process libvtkCommonCore
++    which fails with "Cannot allocate memory"
++
++ -- Drew Parsons <dparsons@debian.org>  Sat, 21 Feb 2026 11:59:19 +0100
++
++vtk9 (9.5.2+dfsg3-7) unstable; urgency=medium
++
++  * Team upload.
++  * add hurd-amd64 to list of architectures supporting adios2
++    in Build-Depends: libadios2-mpi-c++-dev
++    (adios2 now builds on all 64-bit architectures)
++  * update debian/watch to v5 format. Use GitLab template rather than
++    GitHub since upstream development happens at
++    https://gitlab.kitware.com/vtk/vtk
++    https://github.com/Kitware/VTK is just a mirror of the gitlab repo.
++
++ -- Drew Parsons <dparsons@debian.org>  Sun, 15 Feb 2026 19:34:42 +0100
++
++vtk9 (9.5.2+dfsg3-6) unstable; urgency=medium
++
++  * Team upload.
++  * debian patch matplotlib_nullptr_s390x.patch handles case of null
++    ScalarPointer in image in vtkMatplotlibMathTextUtilities::RenderOneCell
++    A null pointer was generated on s390x causing pyvista
++    test_add_text_latex to segfault. Closes: #1126861
++  * add alpha to list of ADIOS2-supporting arches in
++    Build-Depends: libadios2-mpi-c++-dev
++
++ -- Drew Parsons <dparsons@debian.org>  Thu, 05 Feb 2026 20:55:34 +0100
++
++vtk9 (9.5.2+dfsg3-5) unstable; urgency=medium
++
++  * Team upload.
++  * debian patch findEXPAT_version_fix_MR12826.patch applies upstream
++    MR#12826 to fix expat version handling. Closes: #1050506
++  * 9.5.2+dfsg3-3 disabled viskores on 32-bit arches, since
++    ParaView::RemotingViews optionally uses VTK::vtkviskores
++    but (ThirdParty) viskores exhausts virtual memory on 32-bit arches
++  * disable viskores on alpha, which is 64-bit but also exceeds
++    available memory
++
++ -- Drew Parsons <dparsons@debian.org>  Thu, 05 Feb 2026 11:39:23 +0100
++
++vtk9 (9.5.2+dfsg3-4) unstable; urgency=medium
++
++  * Team upload.
++  * debian/rules: use UPSTREAM_VERSION_ABI (currently 9.5) to refer to
++    version specific library (i.e. libvtk9.5) to fix handling of Qt modules
++
++ -- Drew Parsons <dparsons@debian.org>  Wed, 28 Jan 2026 12:53:25 +0100
++
++vtk9 (9.5.2+dfsg3-3) unstable; urgency=medium
++
++  * Team upload.
++  * build docs in arch-indepedent build only
++  * remove version-specific references from debian/rules
++
++ -- Drew Parsons <dparsons@debian.org>  Wed, 28 Jan 2026 10:04:53 +0100
++
++vtk9 (9.5.2+dfsg3-2) unstable; urgency=medium
++
++  * Team upload.
++  * extra VTK modules support paraview. Closes: #1100766
++  * don't configure xdmf3 (i.e. IOParallelXdmf3) on 32-bit arches,
++    where vtk's copy of xdmf3 fails to build. See Bug#1126484
++    (upstream paraview Issue #22630)
++  * enable RenderingFreeTypeFontConfig. Closes: #1101916
++  * build docs in arch-independent build only. Closes: #1125140
++    Move doc generating packages doxygen-latex, ghostscript,
++    gnuplot-nox, graphviz to Build-Depends-Indep <!nodoc>.
++  * escape sequences in vtkMethodParser.py are fixed. Closes: #1079541
++  * Standards-Version: 4.7.3
++
++ -- Drew Parsons <dparsons@debian.org>  Wed, 28 Jan 2026 04:41:09 +0100
++
++vtk9 (9.5.2+dfsg3-1) unstable; urgency=medium
++
++  * Team upload.
++  * enable modules required by paraview 6
++    (use IOParallelXdmf3 for IOXdmf3)
++    - enable VTK::xmdf3 (ThirdParty/xdmf3). Drop from Files-Excluded in
++      debian/copyright. Bump repacked version to dfsg3 to add xdmf3
++  * add support for IOADIOS2 (used by paraview). 64-bit arches only.
++    Build-Depends: libadios2-mpi-c++-dev [amd64 arm64 mips64el ppc64el
++    riscv64 s390x loong64 ppc64 sparc64]
++  * set HDF5_PREFER_PARALLEL=YES (with HDF5_IS_PARALLEL=ON) to
++    activate parallel HDF5 (via libhdf5-mpi-dev)
++  * Build-Depends: libxcursor-dev (enables custom cursors)
++
++ -- Drew Parsons <dparsons@debian.org>  Tue, 27 Jan 2026 00:24:26 +0100
++
++vtk9 (9.5.2+dfsg2-4) unstable; urgency=medium
++
++  * Team upload
++  * Enable VTK external rendering with SDL, GLFW, etc.
++
++ -- Dominique Belhachemi <domibel@debian.org>  Mon, 27 Oct 2025 14:54:02 -0400
++
++vtk9 (9.5.2+dfsg2-3) unstable; urgency=medium
++
++  * Team upload
++  * Fix vtk9-doc FTBFS
++
++ -- Dominique Belhachemi <domibel@debian.org>  Thu, 23 Oct 2025 20:23:59 -0400
++
++vtk9 (9.5.2+dfsg2-2) unstable; urgency=medium
++
++  * Team upload
++  * Fix manpages suffix
++
++ -- Dominique Belhachemi <domibel@debian.org>  Thu, 23 Oct 2025 14:27:19 -0400
++
++vtk9 (9.5.2+dfsg2-1) unstable; urgency=medium
++
++  * Team upload
++  * New upstream release 9.5.2+dfsg2
++  * Keep embedded viskores and scn sources
++  * Exclude embedded nlohmannjson/vtknlohmannjson sources
++  * d/copyright: Update files and licenses
++  * Raise minimum Java version from 8 to 11 (javac --release 11)
++  * Add nlohmann-json3-dev dependency
++  * Add PPC64 patch
++  * Lower optimization to -O1 on alpha to fix FTBFS
++  * Bump Standards-Version to 4.7.2
++  * Drop outdated patches
++  * Remove hardcoded compiler flags
++  * Update man pages
++  * Switch to Qt6
++
++ -- Dominique Belhachemi <domibel@debian.org>  Mon, 13 Oct 2025 12:11:48 -0400
++
++vtk9 (9.5.2+dfsg2-1~exp4) experimental; urgency=medium
++
++  * Team upload
++  * Raise minimum Java version from 8 to 11 (javac --release 11)
++  * Add nlohmann-json3-dev dependency
++
++ -- Dominique Belhachemi <domibel@debian.org>  Wed, 01 Oct 2025 17:16:45 -0400
++
++vtk9 (9.5.2+dfsg2-1~exp3) experimental; urgency=medium
++
++  * Team upload
++  * Add PPC64 patch
++  * Lower optimization to -O1 on alpha to fix FTBFS
++
++ -- Dominique Belhachemi <domibel@debian.org>  Tue, 30 Sep 2025 12:20:57 -0400
++
++vtk9 (9.5.2+dfsg2-1~exp2) experimental; urgency=medium
++
++  * Team upload
++  * Disable 16 ParaView-only modules causing FTBFS
++  * Switch to Qt6
++
++ -- Dominique Belhachemi <domibel@debian.org>  Sun, 28 Sep 2025 17:18:52 -0400
++
++vtk9 (9.5.2+dfsg2-1~exp1) experimental; urgency=medium
++
++  * Team upload
++  * New upstream version 9.5.2+dfsg2
++  * Do not exclude embedded viskores and scn sources
++  * Exclude embedded nlohmannjson/vtknlohmannjson sources
++  * Enable 16 additional modules for ParaView
++  * Switch back from Qt6 to Qt5
++
++ -- Dominique Belhachemi <domibel@debian.org>  Thu, 25 Sep 2025 12:06:18 -0400
++
++vtk9 (9.5.2+dfsg1-1~exp1) experimental; urgency=medium
++
++  * Team upload.
++  * New upstream version 9.5.2+dfsg1
++  * d/copyright: Update files and licenses
++  * Add nlohmann-json3-dev dependency
++  * Drop outdated patches
++  * Remove hardcoded compiler flags
++  * Raise minimum Java version from 8 to 17 (javac --release 17)
++  * Bump Standards-Version to 4.7.2
++  * Switch from Qt5 to Qt6
++
++ -- Dominique Belhachemi <domibel@debian.org>  Tue, 23 Sep 2025 16:48:13 -0400
++
++vtk9 (9.3.0+dfsg1-7) unstable; urgency=medium
++
++  * Non-maintainer upload
++  * Remove obsolete libosmesa6-dev dependency. (Closes: #1113920)
++  * Remove obsolete tcl-dev and tk-dev dependency.
++  * Remove r-base dependency
++  * Apply upstream patch to fix gcc-15 FTBFS issue (Closes: #1111572)
++  * Remove obsolete libftgl-dev dependency
++
++ -- Dominique Belhachemi <domibel@debian.org>  Thu, 04 Sep 2025 14:06:08 -0400
++
++vtk9 (9.3.0+dfsg1-6) unstable; urgency=medium
++
++  * Team upload.
++  * Remove obsolete libmrmpi-dev dependency.
++
++ -- Bastian Germann <bage@debian.org>  Mon, 01 Sep 2025 17:22:13 +0200
++
++vtk9 (9.3.0+dfsg1-5) unstable; urgency=medium
++
++  * Team upload.
++  [ Adrian Bunk ]
++  * Apply patch from Samuel Thibault to disable Java and TBB on Hurd.
++    Closes: #1094994.
++  * Make TBB architecture settings consistent.
++  * Remove handling of removed kfreebsd.
++
++ -- Santiago Vila <sanvila@debian.org>  Fri, 22 Aug 2025 13:20:00 +0200
++
++vtk9 (9.3.0+dfsg1-4) unstable; urgency=medium
++
++  * Team upload.
++  * Replace _FillValue by NC_FillValue for NetCDF 4.9.3. (Closes: #1095478)
++
++ -- Bastian Germann <bage@debian.org>  Sat, 15 Feb 2025 13:13:19 +0000
++
++vtk9 (9.3.0+dfsg1-3) unstable; urgency=medium
++
++  * [a52f6c5] Fix segfault on python 3.13. (Closes: #1092354)
++
++ -- Anton Gladky <gladk@debian.org>  Tue, 28 Jan 2025 21:40:49 +0100
++
++vtk9 (9.3.0+dfsg1-2) unstable; urgency=medium
++
++  * Team upload.
++  * Drop Depends: libqt5webkit5-dev.
++
++ -- Bastian Germann <bage@debian.org>  Thu, 23 Jan 2025 08:49:29 +0100
++
++vtk9 (9.3.0+dfsg1-1.1) unstable; urgency=medium
++
++  * Non-maintainer upload.
++  * Build against libhdf5-mpi-dev, since libhdf5-openmpi-dev is no longer
++    available on 32-bit architectures. Closes: #1078743.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Fri, 22 Nov 2024 11:49:45 +0100
++
++vtk9 (9.3.0+dfsg1-1) unstable; urgency=medium
++
++  * Team upload.
++
++  [ Michael R. Crusoe ]
++  * Build the IO/GeoJSON module. Closes: #1029285
++    To the binary package libvtk9.1t64, this adds
++      /usr/lib/${DEB_HOST_MULTIARCH}/libvtkIOGeoJSON-9.1.so.9.1.0
++      /usr/lib/${DEB_HOST_MULTIARCH}/vtk/hierarchy/VTK/vtkIOGeoJSON-hierarchy.txt
++      /usr/lib/${DEB_HOST_MULTIARCH}/libvtkIOGeoJSON-9.1.so.1
++    To the binary package libvtk9-dev, this adds
++      /usr/include/vtk-9.1/vtkGeoJSONFeature.h
++      /usr/include/vtk-9.1/vtkGeoJSONReader.h
++      /usr/include/vtk-9.1/vtkGeoJSONWriter.h
++      /usr/include/vtk-9.1/vtkIOGeoJSONModule.h
++      /usr/lib/${DEB_HOST_MULTIARCH}/libvtkIOGeoJSON-9.1.so
++    To the binary package libvtk9-java, this adds
++      /usr/lib/${DEB_HOST_MULITARCH}/java/vtk-Linux-${DEB_HOST_GNU_CPU}
++        /libvtkIOGeoJSONJava.so
++    To the binary package python3-vtk9, this adds
++      /usr/lib/python3/dist-packages/vtkmodules
++        /vtkIOGeoJSON.cpython-311-${DEB_HOST_GNU_CPU}.so
++
++  [ Anton Gladky ]
++  * Upload of new version 9.3 into unstable.
++
++ -- Anton Gladky <gladk@debian.org>  Thu, 06 Jun 2024 21:34:35 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-8) unstable; urgency=medium
++
++  [ Bo YU ]
++  * Team upload.
++  * Add support for loongarch64. Thanks to Dandan Zhang
++    <zhangdandan@loongson.cn>. (Closes: #1054471)
++
++  [ Michael R. Crusoe ]
++  * Cherry-pick patch from upstream to fix issue with newer expat and
++    appended data. Closes: #1064762
++  * d/control: build-dep on libhdf5-mpi-dev instead of libhdf5-openmpi-
++    dev. Closes: #1068321
++  * Cherry-pick patch from upstream to fix CVE-2021-42521. Closes:
++    #1031877.
++  * Fix Maintainer name of Debian Science team (routine-update)
++  * Remove trailing whitespace in debian/copyright (routine-update)
++  * d/control: Updated some dependencies on obsolete or supercede packages
++    names.
++
++ -- Michael R. Crusoe <crusoe@debian.org>  Mon, 29 Apr 2024 16:16:28 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-7.1) unstable; urgency=medium
++
++  * Non-maintainer upload.
++  * Rename libraries for 64-bit time_t transition.  Closes: #1063267
++
++ -- Steve Langasek <vorlon@debian.org>  Wed, 28 Feb 2024 23:38:25 +0000
++
++vtk9 (9.3.0+dfsg1-1~exp4) experimental; urgency=medium
++
++  * [43fb8c1] Add libgl2ps-dev as depends.
++
++ -- Anton Gladky <gladk@debian.org>  Sat, 20 Jan 2024 19:57:32 +0100
++
++vtk9 (9.3.0+dfsg1-1~exp3) experimental; urgency=medium
++
++  * [2767f12] Add missing GL-header.
++
++ -- Anton Gladky <gladk@debian.org>  Wed, 10 Jan 2024 22:17:01 +0100
++
++vtk9 (9.3.0+dfsg1-1~exp2) experimental; urgency=medium
++
++  * [ad5a07d] Update build-depends.
++
++ -- Anton Gladky <gladk@debian.org>  Tue, 09 Jan 2024 19:54:16 +0100
++
++vtk9 (9.3.0+dfsg1-1~exp1) experimental; urgency=medium
++
++  [ Bas Couwenberg ]
++  * Team upload.
++  * Merge GCC 13 changes from 9.1.0+really9.1.0+dfsg2-7.
++    (closes: #1037887)
++
++  [ Anton Gladky ]
++  * [69b4a61] Update copyright
++  * [d5dfcaf] New upstream version 9.3.0+dfsg1
++  * [5e949d9] Update binariries to vtk9.3
++  * [7c9a9bf] Update patches
++
++ -- Anton Gladky <gladk@debian.org>  Fri, 05 Jan 2024 06:57:20 +0100
++
++vtk9 (9.2.6+dfsg1-1+exp2) experimental; urgency=medium
++
++  * Team upload.
++  * Merge changes from 9.1.0+really9.1.0+dfsg2-6.
++  * Add license paragraph for public-domain license.
++
++ -- Bas Couwenberg <sebastic@debian.org>  Thu, 22 Jun 2023 13:22:18 +0200
++
++vtk9 (9.2.6+dfsg1-1+exp1) experimental; urgency=medium
++
++  * [965a45d] New upstream version 9.2.6+dfsg1
++
++ -- Anton Gladky <gladk@debian.org>  Sat, 25 Mar 2023 15:34:05 +0100
++
++vtk9 (9.1.0+really9.1.0+dfsg2-7) unstable; urgency=medium
++
++  * Team upload.
++  * Cherry-pick patch from upstream to fix FTBFS with gcc-13.
++    (Closes: #1037887)
++
++ -- Michael R. Crusoe <crusoe@debian.org>  Tue, 22 Aug 2023 00:27:20 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-6) unstable; urgency=medium
++
++  * Team upload.
++  * Don't use netcdf-cxx-legacy.
++    (closes: #1038614)
++
++ -- Bas Couwenberg <sebastic@debian.org>  Thu, 22 Jun 2023 07:14:50 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-5) unstable; urgency=medium
++
++  [ Elvis Stansvik ]
++  * [a408ad0] Add upstream fix for shader crash with multivolume
++
++  [ Adrian Bunk ]
++  * [ab960ac] Build without libtbb also on alpha and ia64
++
++  [ Anton Gladky ]
++  * [be1ea19] Set upstream metadata fields: Bug-Database, Bug-Submit.
++  * [f5599c7] Update standards version to 4.6.2, no changes needed.
++
++ -- Anton Gladky <gladk@debian.org>  Sat, 25 Feb 2023 09:59:35 +0100
++
++vtk9 (9.1.0+really9.1.0+dfsg2-4) unstable; urgency=medium
++
++  * [b05b21f] Fix FTBFS against NETCDF>4.9.0. (Closes: #1012703)
++
++ -- Anton Gladky <gladk@debian.org>  Sun, 19 Jun 2022 16:25:33 +0200
++
++vtk9 (9.1.0+really9.1.0+dfsg2-3) unstable; urgency=medium
++
++  * Upload into unstable.
++
++ -- Anton Gladky <gladk@debian.org>  Fri, 21 Jan 2022 21:24:01 +0100
++
++vtk9 (9.1.0+really9.1.0+dfsg2-3~exp2) experimental; urgency=medium
++
++  [ Adrian Bunk ]
++  * [33b75d5] Restore the 83_allow_gles_platforms.patch hack for Qt with OpenGL ES
++  * [b243b24] HACK: vtkQWidgetTexture.cxx: Don't use vtkOpenGLCheckErrorMacro
++
++  [ Anton Gladky ]
++  * [4449d7a] Add missing Breaks+Replaces to libvtk9. (Closes: #1002063)
++
++ -- Anton Gladky <gladk@debian.org>  Wed, 19 Jan 2022 22:40:05 +0100
++
++vtk9 (9.1.0+really9.1.0+dfsg2-3~exp1) experimental; urgency=medium
++
++  * [948c358] Update package names due to so-version changes
++
++ -- Anton Gladky <gladk@debian.org>  Mon, 29 Nov 2021 22:26:25 +0100
++
++vtk9 (9.1.0+really9.0.3+dfsg1-4) unstable; urgency=medium
++
++  * [90cbc11] vtkFreeTypeTools: avoid using an internal macro.
++              (Closes: #1000746)
++  * [9e418ba] Use python3-dev in BD
++
++ -- Anton Gladky <gladk@debian.org>  Sun, 28 Nov 2021 23:34:47 +0100
++
++vtk9 (9.1.0+really9.0.3+dfsg1-3) unstable; urgency=medium
++
++  * Upload previous version to fix unstable. (Closes: #1000611)
++
++ -- Anton Gladky <gladk@debian.org>  Sat, 27 Nov 2021 21:27:37 +0100
++
++vtk9 (9.1.0+dfsg2-2) unstable; urgency=medium
++
++  * [dda0c55] Fix FTBFS on build-any
++
++ -- Anton Gladky <gladk@debian.org>  Wed, 24 Nov 2021 21:43:24 +0100
++
++vtk9 (9.1.0+dfsg2-1) unstable; urgency=medium
++
++  [ Anton Gladky ]
++  * [d2a3591] Drop Thirdparty/fides from the source
++  * [2f0d373] Fix lintian warnings
++  * [7169c10] Remove unused patches
++  * [a51ec5a] Fix manpages
++  * [e941542] Fix dependencies. (Closes: #998470, #1000501)
++  * [5c49e03] New upstream version 9.1.0+dfsg2
++
++  [ Samuel Thibault ]
++  * [82b2737] Disable libtbb-dev build-dep on !linux. (Closes: #996257)
++
++ -- Anton Gladky <gladk@debian.org>  Wed, 24 Nov 2021 18:07:18 +0100
++
++vtk9 (9.1.0+dfsg1-1) unstable; urgency=medium
++
++  * [5442030] New upstream version 9.1.0+dfsg1
++  * [1ee83fe] Fix compilation
++
++ -- Anton Gladky <gladk@debian.org>  Tue, 23 Nov 2021 20:17:56 +0100
++
++vtk9 (9.0.3+dfsg1-3) unstable; urgency=medium
++
++  * Team upload.
++  * Add upstream patch to include <limits> (Closes: #984399)
++  * Bump Java source/target versions (Closes: #981974)
++  * Add upstream patch for proj>=5 api (Closes: #983299)
++  * Use dh-sequencers
++  * Use execute_after_ of dh
++  * Add Multi-Arch hints from the MA hinter
++  * Bump policy versions (no changes)
++
++ -- Jochen Sprickerhof <jspricke@debian.org>  Tue, 12 Oct 2021 10:21:32 +0200
++
++vtk9 (9.0.3+dfsg1-2) unstable; urgency=medium
++
++  * [ccb2b2e] Remove gitlab-ci
++  * [7e35e50] Add libtbb-dev as depends
++
++ -- Anton Gladky <gladk@debian.org>  Sat, 18 Sep 2021 08:10:15 +0200
++
++vtk9 (9.0.3+dfsg1-1) unstable; urgency=medium
++
++  [ Adrian Bunk ]
++  * [f635946] Bump the libgl2ps-dev build dependency to >= 1.4.1
++
++  [ Francois Mazen ]
++  * [91a8c79] Set TBB as SMP backend.
++
++  [ Anton Gladky ]
++  * [3116116] New upstream version 9.0.3+dfsg1
++  * [6bce9b2] Compile with MPI
++  * [991e8b0] Apply cme fix dpkg
++  * [b64d990] Add .gitlab-ci.yml
++
++ -- Anton Gladky <gladk@debian.org>  Fri, 17 Sep 2021 22:14:11 +0200
++
++vtk9 (9.0.1+dfsg1-8) unstable; urgency=medium
++
++  [ Samuel Thibault ]
++  * [e2a0f2b]  Fix java dep on non-java ports. (Closes: #980125)
++
++ -- Anton Gladky <gladk@debian.org>  Thu, 14 Jan 2021 21:36:46 +0100
++
++vtk9 (9.0.1+dfsg1-7) unstable; urgency=medium
++
++  * [cab8734] Enable some more modules
++
++ -- Anton Gladky <gladk@debian.org>  Thu, 07 Jan 2021 19:43:49 +0100
++
++vtk9 (9.0.1+dfsg1-6) unstable; urgency=medium
++
++  [ Samuel Thibault ]
++  * [7027348] Fix FTBFS on hurd-i386 and non-java ports. (Closes: #978659)
++
++  [ Vagrant Cascadian ]
++  * [7a3a0e0] Make vtk9 build-reproducible. (Closes: #977522, #977521)
++
++  [ Anton Gladky ]
++  * [a341c32] Enable RenderingContextOpenGL2. (Closes: #979073)
++
++ -- Anton Gladky <gladk@debian.org>  Mon, 04 Jan 2021 22:12:05 +0100
++
++vtk9 (9.0.1+dfsg1-5) unstable; urgency=medium
++
++  [ Adrian Bunk ]
++  * [06163ff] Fixes and workaround for platforms where Qt uses OpenGL ES
++
++  [ Anton Gladky ]
++  * [3e6d9ec] Ignore quilt dir
++  * [294ca1e] Revert "Do not build qt on some (GLES) archs"
++
++ -- Anton Gladky <gladk@debian.org>  Sun, 13 Dec 2020 12:55:42 +0100
++
++vtk9 (9.0.1+dfsg1-4) unstable; urgency=medium
++
++  * [b80e4ab] Do not build qt on some (GLES) archs
++
++ -- Anton Gladky <gladk@debian.org>  Sun, 13 Dec 2020 12:14:22 +0100
++
++vtk9 (9.0.1+dfsg1-3) unstable; urgency=medium
++
++  [ Adrian Bunk ]
++  * [52af841] Revert "Link against latomic"
++  * [381ea98] Link with libatomic on archtectures that need it
++
++  [ Anton Gladky ]
++  * [a983346] 80_allow_gles_platforms.patch.
++  * [e79137e] Fix FTBFS against freetype 2.10.4. (Closes: #976975)
++  * [d7ecb86] Add python3-vtk9 as Breaks+Replaces: python3-paraview.
++              (Closes: #976127)
++  * [19fe54e] Update changelog.
++
++ -- Anton Gladky <gladk@debian.org>  Thu, 10 Dec 2020 17:33:59 +0100
++
++vtk9 (9.0.1+dfsg1-2) unstable; urgency=medium
++
++  * [3afb408] Fix autopkgtests
++  * [8c41fa9] Minor fix in d/copyright
++
++ -- Anton Gladky <gladk@debian.org>  Wed, 25 Nov 2020 21:50:59 +0100
++
++vtk9 (9.0.1+dfsg1-1) unstable; urgency=medium
++
++  * [6b297c8] Link against latomic
++  * Upload into unstable
++
++ -- Anton Gladky <gladk@debian.org>  Thu, 19 Nov 2020 19:59:45 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp6) experimental; urgency=medium
++
++  * [751a92f] Remove Qt-files from non-qt binaries. (Closes: #974923)
++
++ -- Anton Gladky <gladk@debian.org>  Mon, 16 Nov 2020 21:39:46 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp5) experimental; urgency=medium
++
++  * [21adbaf] Fix FTBFS
++  * [4326c39] Sort build-dependencies
++
++ -- Anton Gladky <gladk@debian.org>  Sun, 15 Nov 2020 08:47:31 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp4) experimental; urgency=medium
++
++  * [0be2017] Drop Build-Depends-Arch:
++
++ -- Anton Gladky <gladk@debian.org>  Fri, 13 Nov 2020 23:29:02 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp3) experimental; urgency=medium
++
++  * [e5cfe7f] Move javahelper to BD
++
++ -- Anton Gladky <gladk@debian.org>  Fri, 13 Nov 2020 22:53:27 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp2) experimental; urgency=medium
++
++  * [cedb51e] Fix FTBFS on -any arch
++
++ -- Anton Gladky <gladk@debian.org>  Fri, 13 Nov 2020 16:07:58 +0100
++
++vtk9 (9.0.1+dfsg1-1~exp1) experimental; urgency=medium
++
++  * Initial release. (Closes: #974165)
++
++ -- Anton Gladky <gladk@debian.org>  Tue, 10 Nov 2020 22:12:50 +0100
diff --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..93b1f9feb26258eb41508d1213d285b29e6246e3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,267 @@@
++Source: vtk9
++Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
++Uploaders: Anton Gladky <gladk@debian.org>,
++           Gert Wollny <gewo@debian.org>,
++           Nico Schlömer <nico.schloemer@gmail.com>
++Section: graphics
++Build-Depends: dpkg-dev (>= 1.22.5),
++               chrpath,
++               cmake,
++               debhelper-compat (= 13),
++               default-jdk [!hppa !hurd-any],
++               libmariadb-dev,
++               dh-sequence-python3,
++               guess-concurrency,
++               hdf5-tools,
++               dh-sequence-javahelper,
++               libalglib-dev,
++               javahelper,
++               libboost-dev,
++               libadios2-mpi-c++-dev [amd64 arm64 loong64 mips64el ppc64el riscv64 s390x alpha hurd-amd64 ppc64 sparc64],
++               libavcodec-dev,
++               libavformat-dev,
++               libavutil-dev,
++               libdigest-md5-perl,
++               libeigen3-dev,
++               libexpat-dev,
++               libexprtk-dev,
++               libfontconfig-dev,
++               libfreetype-dev,
++               libgdal-dev,
++               libgl-dev,
++               libgl2ps-dev,
++               libglew-dev,
++               libglu-dev,
++               libhdf5-mpi-dev,
++               libhpdf-dev,
++               libjpeg-dev,
++               libjs-mathjax,
++               libjsoncpp-dev,
++               liblz4-dev,
++               libnetcdf-dev (>= 1:4.9.0),
++               libogg-dev,
++               libpng-dev,
++               libpq-dev,
++               libproj-dev,
++               libsqlite3-dev,
++               libswscale-dev,
++               libtbb-dev [linux-any],
++               libtheora-dev,
++               libtiff-dev,
++               libutfcpp-dev,
++               libx11-dev,
++               libxcursor-dev,
++               libxdmf-dev,
++               libxml2-dev,
++               libxpm-dev,
++               libxt-dev,
++               lzma,
++               nlohmann-json3-dev,
++               mpi-default-dev,
++               pkgconf,
++               python3-all-dev,
++               python3-matplotlib,
++               python3-mpi4py,
++               qt6-base-dev,
++               texlive-binaries,
++               x11proto-core-dev,
++               xauth,
++               xvfb,
++               zlib1g-dev,
++               sqlite3
++Build-Depends-Indep: doxygen-latex <!nodoc>,
++               ghostscript <!nodoc>,
++               gnuplot-nox <!nodoc>,
++               graphviz <!nodoc>
++Standards-Version: 4.7.4
++Vcs-Browser: https://salsa.debian.org/science-team/vtk9
++Vcs-Git: https://salsa.debian.org/science-team/vtk9.git
++Homepage: https://www.vtk.org/
++
++Package: libvtk9-dev
++Architecture: any
++Section: libdevel
++Depends: ${misc:Depends},
++         ${shlibs:Depends},
++         default-jdk [!hppa !hurd-any],
++         libmariadb-dev,
++         ${boost:Depends},
++         libavcodec-dev,
++         libavformat-dev,
++         libavutil-dev,
++         libc6-dev,
++         libeigen3-dev,
++         libexpat-dev,
++         libfreetype-dev,
++         libgdal-dev,
++         libgl-dev,
++         libgl2ps-dev,
++         libglew-dev,
++         libglu1-mesa-dev | libglu-dev,
++         libhdf5-mpi-dev,
++         libjpeg-dev,
++         libjsoncpp-dev,
++         liblz4-dev,
++         libnetcdf-dev,
++         libpng-dev,
++         libpq-dev,
++         libproj-dev,
++         libpython3-dev,
++         libswscale-dev,
++         libtbb-dev [linux-any],
++         libtheora-dev,
++         libtiff-dev,
++         libutfcpp-dev,
++         libvtk9.6 (= ${binary:Version}),
++         libvtk9-java (= ${binary:Version}) [!hppa !hurd-any],
++         libx11-dev,
++         libxcursor-dev,
++         libxft-dev,
++         libxml2-dev,
++         libxss-dev,
++         libxt-dev,
++         nlohmann-json3-dev,
++         mpi-default-dev,
++         python3-vtk9 (= ${binary:Version}),
++         vtk9 (= ${binary:Version}),
++         x11proto-core-dev,
++         zlib1g-dev
++Suggests: vtk9-doc,
++          vtk9-examples
++Description: VTK header files
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the VTK header files required to compile
++ C++ programs that use VTK to do 3D visualisation.
++
++Package: libvtk9.6
++Architecture: any
++Multi-Arch: same
++Section: libs
++Depends: ${misc:Depends},
++         ${shlibs:Depends}
++Suggests: mpi-default-bin,
++          vtk9-doc,
++          vtk9-examples
++Breaks: libvtk9.1 (<< ${source:Version}),
++        libvtk9 (<< 9.1.0+really9.1.0)
++Provides: ${t64:Provides}
++Replaces: libvtk9.1,
++          libvtk9 (<< 9.1.0+really9.1.0)
++Description: VTK libraries
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the shared libraries needed to run C++ programs
++ that use VTK.
++
++Package: libvtk9-java
++Architecture: amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64el s390x alpha ia64 m68k powerpc ppc64 riscv64 sh4 sparc64 x32
++Section: java
++Depends: ${java:Depends},
++         ${misc:Depends},
++         ${python3:Depends},
++         ${shlibs:Depends}
++Suggests: java-virtual-machine,
++          libvtk9-dev (= ${binary:Version}),
++          vtk9-doc,
++          vtk9-examples
++Description: VTK - Java language support
++ The Visualization Toolkit (VTK) is an object oriented, high level
++ library that allows one to easily write C++ programs, Python and
++ Java scripts that do 3D visualization.
++ .
++ This package provides the VTK Java language support.
++
++Package: python3-vtk9
++Architecture: any
++Section: python
++Depends: libvtk9.6 (= ${binary:Version}),
++         python3-mpi4py,
++         ${misc:Depends},
++         ${python3:Depends},
++         ${shlibs:Depends}
++Suggests: mayavi2,
++          vtk9-doc,
++          vtk9-examples
++Breaks: python3-vtk6,
++        python3-vtk7
++Replaces: python3-vtk6,
++          python3-vtk7
++Description: Python bindings for VTK
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the python3 bindings for VTK.
++
++Package: vtk9
++Architecture: any
++Section: interpreters
++Depends: libvtk9.6 (= ${binary:Version}),
++         ${misc:Depends},
++         ${shlibs:Depends}
++Suggests: vtk9-doc,
++          vtk9-examples
++Description: Binaries for VTK9
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides binaries for VTK9
++
++Package: vtk9-doc
++Architecture: all
++Section: doc
++Depends: doc-base,
++         libjs-jquery,
++         libjs-mathjax,
++         ${misc:Depends}
++Suggests: libvtk9-dev,
++          vtk9-examples
++Description: VTK class reference documentation
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides documentation for VTK9
++
++Package: vtk9-examples
++Architecture: all
++Multi-Arch: foreign
++Depends: ${misc:Depends}
++Suggests: libvtk9-dev,
++          python3,
++          python3-vtk9,
++          vtk9-doc
++Description: VTK examples
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides examples for VTK9
++
++Package: libvtk9.6-qt
++Architecture: any
++Multi-Arch: same
++Section: libs
++Depends: ${misc:Depends},
++         ${shlibs:Depends}
++Description: VTK libraries, Qt files
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the shared libraries needed to run C++ programs
++ that use VTK. Qt files
++
++Package: libvtk9-qt-dev
++Architecture: any
++Section: libdevel
++Depends: libvtk9-dev (= ${binary:Version}),
++         libvtk9.6-qt (= ${binary:Version}),
++         ${misc:Depends},
++         ${shlibs:Depends},
++         qt6-base-dev,
++Description: VTK header files, containing Qt files
++ The Visualization Toolkit (VTK) is an open-source software system
++ for 3D computer graphics, image processing, and visualization.
++ .
++ This package provides the VTK header files required to compile
++ C++ programs that use VTK to do 3D visualisation. Qt files
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..149eb1c2146e148919fcf578cc326e52cb000377
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,677 @@@
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Source: https://www.vtk.org/
++Upstream-Name: Visualization Toolkit
++Files-Excluded:
++  ThirdParty/eigen/vtkeigen
++  ThirdParty/expat/vtkexpat
++  ThirdParty/exprtk/vtkexprtk
++  ThirdParty/fides
++  ThirdParty/freetype/vtkfreetype
++  ThirdParty/gl2ps/vtkgl2ps
++  ThirdParty/hdf5/vtkhdf5
++  ThirdParty/jpeg/vtkjpeg
++  ThirdParty/jsoncpp/vtkjsoncpp
++  ThirdParty/libproj/vtklibproj
++  ThirdParty/libxml2/vtklibxml2
++  ThirdParty/lz4/vtklz4
++  ThirdParty/lzma/vtklzma
++  ThirdParty/mpi4py
++  ThirdParty/netcdf/vtknetcdf
++  ThirdParty/nlohmannjson/vtknlohmannjson
++  ThirdParty/ogg/vtkogg
++  ThirdParty/png/vtkpng
++  ThirdParty/sqlite/vtksqlite
++  ThirdParty/theora/vtktheora
++  ThirdParty/tiff/vtktiff
++  ThirdParty/utf8/vtkutf8
++  ThirdParty/zlib/vtkzlib
++
++Files: *
++Copyright: 1993-2026 Ken Martin, Will Schroeder, Bill Lorensen,
++           Kitware Inc., Sandia Corporation.
++License: BSD-3-clause
++
++Files: debian/*
++Copyright: 2004-2009, A. Maitland Bottoms <bottoms@debian.org>
++           2009-2026, Dominique Belhachemi <domibel@debian.org>
++           2010-2011, Mathieu Malaterre <malat@debian.org>
++           2011-2026, Anton Gladky <gladk@debian.org>
++           2018-2026, Drew Parsons <dparsons@debian.org>
++           2026, Maximiliano Curia <maxy@debian.org>
++           2026, Francesco Ballarin <ballarin@debian.org>
++License: BSD-3-clause
++
++Files: Accelerators/*
++Copyright: 2012 Sandia Corporation.
++License: BSD-3-clause
++
++Files: CMake/FindPEGTL.cmake
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++           2006, 2007 Montel Laurent <montel@kde.org>
++           2008, 2009 Gael Guennebaud <g.gael@free.fr>
++           2009 Benoit Jacob <jacob.benoit.1@gmail.com>
++License: BSD-2-clause
++
++Files: CMake/SPDX_generate_output.py
++Copyright: 2023 Kitware, Inc.
++License: CC0-1.0
++
++Files: CMake/vtkTopologicalSort.cmake
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++           2010 Kitware, Inc.
++           2007 Douglas Gregor <doug.gregor@gmail.com>
++           2007 Troy Straszheim
++License: BSL-1.0
++
++Files: Common/Core/vtkMersenneTwister.h
++ Common/Core/vtkMersenneTwister_Private.cxx
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++           2001-2009 Makoto Matsumoto and Takuji Nishimura.
++           2009 Mutsuo Saito
++License: BSD-2-clause
++
++Files: Common/Core/vtkTypeList.h
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++           2001 Andrei Alexandrescu
++           2001 Addison-Wesley
++License: BSD-3-clause and MIT
++
++Files: Common/Core/vtkValueFromString.cxx
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++           2017 Elias Kosunen
++License: BSD-3-clause and Apache-2.0
++
++Files: Common/DataModel/vtkDistributedGraphHelper.cxx
++ Common/DataModel/vtkDistributedGraphHelper.h
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++License: BSL-1.0
++
++Files: Examples/Android/NativeVTK/*
++Copyright: 2010, The Android Open Source Project
++License: Apache-2.0
++
++Files: Filters/General/vtkTemporalPathLineFilter.cxx
++Copyright: CSCS - Swiss National Supercomputing Centre.
++License: BSD-3-clause
++
++Files: IO/Image/Testing/*
++Copyright: GeometryFactory
++License: BSD-3-clause
++
++Files: IO/MINC/*
++Copyright: 2006 Atamai, Inc.
++           1993-2000 Peter Neelin and David MacDonald, McConnell Brain Imaging Centre
++License: BSD-3-clause
++
++Files: IO/PIO/BHTree.cxx
++ IO/PIO/BHTree.h
++Copyright: 2007, Los Alamos National Security, LLC
++License: BSD-3-clause
++
++Files: Interaction/Widgets/Testing/Cxx/*
++Copyright: Ken Martin, Will Schroeder, Bill Lorensen
++License: Apache-2.0
++
++Files: Rendering/FreeType/fonts/face_courier*.cxx
++ Rendering/FreeType/fonts/face_times*.cxx
++Copyright: 1990 Bitstream Inc.
++License: Bitstream-Vera
++
++Files: Rendering/FreeType/fonts/face_arial*.cxx
++Copyright: 1997-1999 (URW)++ Design & Development
++License: Aladdin
++
++Files: Rendering/ZSpace/ThirdParty/*
++Copyright: 2022-2023 zSpace, Inc.
++License: BSD-3-clause
++
++Files: ThirdParty/cgns/vtkcgns/*
++Copyright: 1999-2020 CGNS Steering Committee
++           1999-2002 Aladdin Enterprises
++License: Zlib
++
++Files: ThirdParty/cli11/vtkcli11/*
++Copyright: 2017-2024 University of Cincinnati, Henry Schreiner
++License: BSD-3-clause
++
++Files: ThirdParty/diy2/vtkdiy2/*
++Copyright: 2015, The Regents of the University of California, through
++ Lawrence Berkeley National Laboratory
++License: BSD-3-clause-LBNL
++
++Files: ThirdParty/diy2/vtkdiy2/include/vtkdiy2/thirdparty/fmt/*
++Copyright: 2012-2016, Victor Zverovich
++License: MIT-exception
++
++Files: ThirdParty/diy2/vtkdiy2/include/vtkdiy2/thirdparty/itlib/*
++Copyright:
++ 2016-2018 Chobolabs Inc.
++ 2020-2022 Borislav Stanimirov
++License: MIT
++
++Files: ThirdParty/diy2/vtkdiy2/include/vtkdiy2/thirdparty/thread/*
++Copyright: 2010-2012 Marcus Geelnard
++License: Zlib
++
++Files: ThirdParty/exodusII/vtkexodusII/*
++Copyright: 2005-2017 National Technology & Engineering Solutions of Sandia, LLC (NTESS)
++License: BSD-3-clause
++
++Files: ThirdParty/fast_float/vtkfast_float/*
++Copyright: 2020-2021 Daniel Lemire
++License: Apache-2.0 or MIT or BSL-1.0
++
++Files: ThirdParty/fmt/vtkfmt/*
++Copyright: 2012-present, Victor Zverovich
++License: MIT-exception
++
++Files:
++ ThirdParty/glad/vtkglad/include/EGL/eglplatform.h
++ ThirdParty/glad/vtkglad/include/KHR/khrplatform.h
++Copyright: 2007-2020 The Khronos Group Inc.
++License: Apache-2.0
++
++Files:
++ ThirdParty/glad/vtkglad/include/glad/*
++ ThirdParty/glad/vtkglad/src/*
++Copyright: 2013-2022 David Herberth
++License: MIT
++
++Files: ThirdParty/h5hut/vtkh5hut/*
++Copyright: 2006-2016, The Regents of the University of California,
++ through Lawrence Berkeley National Laboratory (subject to receipt of any
++ required approvals from the U.S. Dept. of Energy)
++ and the Paul Scherrer Institut (Switzerland)
++License: BSD-3-clause-notice-2
++
++Files: ThirdParty/ioss/vtkioss/*
++Copyright: 1999-2025 National Technology & Engineering Solutions of Sandia, LLC (NTESS)
++License: BSD-3-clause
++
++Files: ThirdParty/ioss/vtkioss/pdqsort.h
++Copyright: 2021-2023 Orson Peters
++License: Zlib
++
++Files: ThirdParty/ioss/vtkioss/Ioss_Getline.C
++Copyright: 1991-1993 Chris Thewalt
++License: BSD-3-clause
++
++Files: ThirdParty/kissfft/vtkkissfft/*
++Copyright: 2003-2010, Mark Borgerding
++License: BSD-3-clause
++
++Files: ThirdParty/libharu/vtklibharu/*
++Copyright: 1999-2006 Takeshi Kanno
++           2007-2009 Antony Dovgal
++License: Zlib
++
++Files: ThirdParty/libharu/vtklibharu/src/t4.h
++Copyright: 1988-1997 Sam Leffler
++           1991-1997 Silicon Graphics, Inc.
++License: Libtiff
++
++Files: ThirdParty/loguru/vtkloguru/*
++Copyright: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
++License: public-domain
++
++Files: ThirdParty/pegtl/vtkpegtl/*
++Copyright: 2007-2020 Dr. Colin Hirsch and Daniel Frey
++License: Expat
++
++Files: ThirdParty/pugixml/vtkpugixml/*
++Copyright: 2006-2020 Arseny Kapoulkine
++License: Expat
++
++Files: ThirdParty/scn/vtkscn/*
++Copyright: 2017-2020 Elias Kosunen
++License: Apache-2.0
++
++Files: ThirdParty/scn/vtkscn/include/vtkscn/scan.h
++Copyright: 2017-2020 Elias Kosunen
++           2018 Tristan Brindle
++License: Apache-2.0 and BSL-1.0
++
++Files: ThirdParty/token/vtktoken/*
++Copyright: 2020-2023 Kitware, Inc.
++License: BSD-3-clause
++
++Files: ThirdParty/verdict/vtkverdict/*
++Copyright: 2003, 2006, 2019 National Technology & Engineering Solutions of Sandia, LLC (NTESS)
++License: BSD-3-clause
++
++Files: ThirdParty/viskores/vtkviskores/*
++Copyright: 2025 Kitware Inc.,
++ National Technology & Engineering Solutions of Sandia, LLC (NTESS),
++ UT-Battelle, LLC.,
++ Los Alamos National Security, LLC.
++License: Viskores-1.0
++
++Files: ThirdParty/viskores/vtkviskores/viskores/viskores/thirdparty/lodepng/viskoreslodepng/*
++Copyright: 2005-2020 Lode Vandevenne
++License: Zlib
++
++Files: ThirdParty/viskores/vtkviskores/viskores/viskores/thirdparty/diy/viskoresdiy/*
++Copyright: 2015 The Regents of the University of California, through
++ Lawrence Berkeley National Laboratory
++License: BSD-3-clause-LBNL
++
++Files: ThirdParty/viskores/vtkviskores/viskores/viskores/thirdparty/diy/viskoresdiy/include/viskoresdiy/thirdparty/itlib/*
++Copyright: 2016-2018 Chobolabs Inc.
++           2020-2022 Borislav Stanimirov
++License: MIT
++
++Files: ThirdParty/viskores/vtkviskores/viskores/viskores/thirdparty/diy/viskoresdiy/include/viskoresdiy/thirdparty/thread/*
++Copyright: 2010-2012 Marcus Geelnard
++License: Zlib
++
++Files: ThirdParty/viskores/vtkviskores/viskores/viskores/thirdparty/diy/viskoresdiy/include/viskoresdiy/thirdparty/fmt/*
++Copyright: 2012-2016 Victor Zverovich
++License: MIT-exception
++
++Files: ThirdParty/viskores/vtkviskores/viskores/viskores/thirdparty/loguru/viskoresloguru/*
++Copyright: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
++License: public-domain
++
++Files: ThirdParty/viskores/vtkviskores/viskores/viskores/thirdparty/lcl/viskoreslcl/*
++Copyright: 2019 Kitware Inc.
++License: BSD-3-clause
++
++Files: ThirdParty/vpic/*
++Copyright: 2007, Los Alamos National Security, LLC
++License: BSD-3-clause
++
++Files: ThirdParty/xdmf2/vtkxdmf2/*
++Copyright: 1984, 1989, 1990, 2000-2003 Free Software Foundation, Inc.
++           2002 US Army Research Laboratory
++License: GPL-2+
++
++Files: ThirdParty/xdmf3/vtkxdmf3/*
++Copyright: 2011 US Army Research Laboratory
++           2011 Kitware Inc.
++License: BSD-3-clause
++
++Files: ThirdParty/xdmf3/vtkxdmf3/core/loki/*
++Copyright: 2001 Andrei Alexandrescu
++           2001 Addison-Wesley
++License: MIT
++
++Files: Utilities/DICOMParser/*
++Copyright: 2003, Matt Turek
++License: BSD-3-clause
++
++Files: Utilities/KWSys/*
++Copyright: 1996, Silicon Graphics Computer Systems, Inc.
++License: BSD-3-clause
++
++Files: Utilities/KWSys/vtksys/MD5.c
++Copyright: 1999, 2000, 2002, Aladdin Enterprises.
++License: Zlib
++
++Files: Utilities/Maintenance/*
++Copyright: Insight Software Consortium
++License: Apache-2.0
++
++Files: Utilities/MetaIO/*
++Copyright: 2000-2011, Insight Software Consortium
++License: Apache-2.0
++
++License: BSD-3-clause
++  Redistribution and use in source and binary forms, with or without
++  modification, are permitted provided that the following conditions are met:
++  .
++  * Redistributions of source code must retain the above copyright notice,
++    this list of conditions and the following disclaimer.
++  .
++  * Redistributions in binary form must reproduce the above copyright notice,
++    this list of conditions and the following disclaimer in the documentation
++    and/or other materials provided with the distribution.
++  .
++  * Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names
++    of any contributors may be used to endorse or promote products derived
++    from this software without specific prior written permission.
++  .
++  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
++  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++  ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
++  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
++  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
++  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++License: BSD-2-clause
++  Redistribution and use in source and binary forms, with or without
++  modification, are permitted provided that the following conditions are
++  met:
++  .
++    * Redistributions of source code must retain the above copyright
++      notice, this list of conditions and the following disclaimer.
++    * Redistributions in binary form must reproduce the above
++      copyright notice, this list of conditions and the following
++      disclaimer in the documentation and/or other materials provided
++      with the distribution.
++  .
++  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++License: BSL-1.0
++  Boost Software License - Version 1.0 - August 17th, 2003
++  .
++  Permission is hereby granted, free of charge, to any person or organization
++  obtaining a copy of the software and accompanying documentation covered by
++  this license (the "Software") to use, reproduce, display, distribute,
++  execute, and transmit the Software, and to prepare derivative works of the
++  Software, and to permit third-parties to whom the Software is furnished to
++  do so, all subject to the following:
++  .
++  The copyright notices in the Software and this entire statement, including
++  the above license grant, this restriction and the following disclaimer,
++  must be included in all copies of the Software, in whole or in part, and
++  all derivative works of the Software, unless such copies or derivative
++  works are solely in the form of machine-executable object code generated by
++  a source language processor.
++  .
++  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++  FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
++  SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
++  FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
++  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++  DEALINGS IN THE SOFTWARE.
++
++License: Apache-2.0
++  On Debian systems, the full text of the Apache
++  License version 2 can be found in the file
++  `/usr/share/common-licenses/Apache-2.0'.
++
++License: Zlib
++  This software is provided 'as-is', without any express or implied warranty.
++  .
++  In no event will the authors be held liable for any damages arising from the
++  use of this software.
++  .
++  Permission is granted to anyone to use this software for any purpose,including
++  commercial applications, and to alter it and redistribute it freely, subject
++  to the following restrictions:
++  .
++  1. The origin of this software must not be misrepresented; you must not claim
++      that you wrote the original software. If you use this software in a
++      product, an acknowledgment in the product documentation would be
++      appreciated but is not required.
++  2. Altered source versions must be plainly marked as such, and must not be
++      misrepresented as being the original software.
++  3. This notice may not be removed or altered from any source distribution.
++
++License: Expat
++  Permission is hereby granted, free of charge, to any person obtaining a copy
++  of this software and associated documentation files (the "Software"), to deal
++  in the Software without restriction, including without limitation the rights
++  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++  copies of the Software, and to permit persons to whom the Software is
++  furnished to do so, subject to the following conditions:
++  .
++  The above copyright notice and this permission notice shall be included in all
++  copies or substantial portions of the Software.
++  .
++  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++  SOFTWARE.
++
++License: GPL-2+
++  This program is free software; you can redistribute it
++  and/or modify it under the terms of the GNU General Public
++  License as published by the Free Software Foundation; either
++  version 2 of the License, or (at your option) any later
++  version.
++  .
++  On Debian systems, the full text of the GNU General Public
++  License version 2 can be found in the file
++  `/usr/share/common-licenses/GPL-2'.
++
++License: MIT
++  Permission is hereby granted, free of charge, to any person obtaining a copy
++  of this software and associated documentation files (the "Software"), to deal
++  in the Software without restriction, including without limitation the rights
++  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++  copies of the Software, and to permit persons to whom the Software is
++  furnished to do so, subject to the following conditions:
++  .
++  The above copyright notice and this permission notice shall be included in all
++  copies or substantial portions of the Software.
++  .
++  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++  SOFTWARE.
++
++License: MIT-exception
++  Permission is hereby granted, free of charge, to any person obtaining
++  a copy of this software and associated documentation files (the
++  "Software"), to deal in the Software without restriction, including
++  without limitation the rights to use, copy, modify, merge, publish,
++  distribute, sublicense, and/or sell copies of the Software, and to
++  permit persons to whom the Software is furnished to do so, subject to
++  the following conditions:
++  .
++  The above copyright notice and this permission notice shall be
++  included in all copies or substantial portions of the Software.
++  .
++  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++  .
++  --- Optional exception to the license ---
++  .
++  As an exception, if, as a result of your compiling your source code, portions
++  of this Software are embedded into a machine-executable object form of such
++  source code, you may redistribute such embedded portions in such object form
++  without including the above copyright and permission notices.
++
++License: BSD-3-clause-notice-2
++  Redistribution and use in source and binary forms, with or without
++  modification, are permitted provided that the following conditions are met:
++  .
++  (1) Redistributions of source code must retain the above copyright
++  notice, this list of conditions and the following disclaimer.
++  .
++  (2) Redistributions in binary form must reproduce the above copyright
++  notice, this list of conditions and the following disclaimer in the
++  documentation and/or other materials provided with the distribution.
++  .
++  (3) Neither the name of the University of California, Lawrence Berkeley
++  National Laboratory, U.S. Dept. of Energy, Paul Scherrer Institut
++  (Switzerland) nor the names of its contributors may be used to endorse
++  or promote products derived from this software without specific prior
++  written permission.
++  .
++  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
++  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
++  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
++  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++  .
++  You are under no obligation whatsoever to provide any bug fixes,
++  patches, or upgrades to the features, functionality or performance of
++  the source code ("Enhancements") to anyone; however, if you choose to
++  make your Enhancements available either publicly, or directly to
++  Lawrence Berkeley National Laboratory, without imposing a separate
++  written license agreement for such Enhancements, then you hereby grant
++  the following license: a  non-exclusive, royalty-free perpetual license
++  to install, use, modify, prepare derivative works, incorporate into
++  other computer software, distribute, and sublicense such enhancements or
++  derivative works thereof, in binary and source code form.
++
++License: BSD-3-clause-LBNL
++  Redistribution and use in source and binary forms, with or without modification,
++  are permitted provided that the following conditions are met:
++  .
++  (1) Redistributions of source code must retain the above copyright notice, this
++  list of conditions and the following disclaimer.
++  .
++  (2) Redistributions in binary form must reproduce the above copyright notice,
++  this list of conditions and the following disclaimer in the documentation and/or
++  other materials provided with the distribution.
++  .
++  (3) Neither the name of the University of California, Lawrence Berkeley National
++  Laboratory, U.S. Dept. of Energy nor the names of its contributors may be used
++  to endorse or promote products derived from this software without specific prior
++  written permission.
++  .
++  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
++  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
++  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++  .
++  You are under no obligation whatsoever to provide any bug fixes, patches, or
++  upgrades to the features, functionality or performance of the source code
++  ("Enhancements") to anyone; however, if you choose to make your Enhancements
++  available either publicly, or directly to Lawrence Berkeley National Laboratory,
++  without imposing a separate written license agreement for such Enhancements,
++  then you hereby grant the following license: a  non-exclusive, royalty-free
++  perpetual license to install, use, modify, prepare derivative works, incorporate
++  into other computer software, distribute, and sublicense such enhancements or
++  derivative works thereof, in binary and source code form.
++
++License: Viskores-1.0
++  Viskores License Version 1.0
++  Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government
++  retains certain rights in this software.
++  .
++  Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National
++  Laboratory (LANL), the U.S. Government retains certain rights in
++  this software.
++  .
++  Redistribution and use in source and binary forms, with or without
++  modification, are permitted provided that the following conditions are
++  met:
++  .
++  * Redistributions of source code must retain the above copyright
++    notice, this list of conditions and the following disclaimer.
++  .
++  * Redistributions in binary form must reproduce the above copyright
++    notice, this list of conditions and the following disclaimer in the
++    documentation and/or other materials provided with the
++    distribution.
++  .
++  * Neither the name of Kitware nor the names of any contributors may
++    be used to endorse or promote products derived from this software
++    without specific prior written permission.
++  .
++  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
++  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++License: Bitstream-Vera
++  Permission is hereby granted, free of charge, to any person obtaining a copy
++  of the fonts accompanying this license ("Fonts") and associated documentation
++  files (the "Font Software"), to reproduce and distribute the Font Software,
++  including without limitation the rights to use, copy, merge, publish,
++  distribute, and/or sell copies of the Font Software, and to permit persons
++  to whom the Font Software is furnished to do so, subject to the following
++  conditions:
++  .
++  The above copyright and trademark notices and this permission notice shall
++  be included in all copies of one or more of the Font Software typefaces.
++  .
++  The Font Software may be modified, altered, or added to, and in particular
++  the designs of glyphs or characters in the Fonts may be modified and
++  additional glyphs or characters may be added to the Fonts, only if the fonts
++  are renamed to names not containing either the words "Bitstream" or the word
++  "Vera".
++  .
++  This License becomes null and void to the extent applicable to Fonts or Font
++  Software that has been modified and is distributed under the "Bitstream Vera"
++  names.
++  .
++  The Font Software may be sold as part of a larger software package but no copy
++  of one or more of the Font Software typefaces may be sold by itself.
++  .
++  THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++  IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
++  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
++  TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION
++  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
++  SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION
++  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
++  USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT
++  SOFTWARE.
++
++License: Aladdin
++  Aladdin Free Public License (AFPL)
++  .
++  This software is distributed under the Aladdin Free Public License (AFPL).
++  See https://web.mit.edu/ghostscript/www/Public.htm for full details.
++  .
++  Redistribution and use in source and binary forms, with or without
++  modification, are permitted provided that the copyright notice and this
++  notice are preserved.
++
++License: CC0-1.0
++  On Debian systems, the full text of the Creative Commons Zero v1.0 Universal
++  license can be found in `/usr/share/common-licenses/CC0-1.0'.
++
++License: Libtiff
++  Permission to use, copy, modify, distribute, and sell this software and
++  its documentation for any purpose is hereby granted without fee, provided
++  that (i) the above copyright notices and this permission notice appear in
++  all copies of the software and related documentation, and (ii) the names of
++  Sam Leffler and Silicon Graphics may not be used in any advertising or
++  publicity relating to the software without the specific, prior written
++  permission of Sam Leffler and Silicon Graphics.
++  .
++  THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
++  EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
++  WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
++  .
++  IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
++  ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
++  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
++  WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
++  LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
++  OF THIS SOFTWARE.
++
++License: public-domain
++  This work is dedicated to the public domain. It is free of any copyright
++  restrictions and can be used for any purpose without attribution.
diff --cc debian/gbp.conf
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..af46c8f66a492b1c27424cde5052c8831f9913fa
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++[DEFAULT]
++pristine-tar = True
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..911f278aa10c1f37660be845d436a256050c0564
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++usr/include/vtk-9.6 usr/include
++usr/lib/*/*.so
++usr/lib/*/cmake/vtk-9.6
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..acc83b9127aad826c31082d3d4f3d461dbd680ec
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++usr/bin/vtkParseJava-9.6                    usr/bin
++usr/bin/vtkWrapJava-9.6                     usr/bin
++usr/lib/*/java/vtk9.jar                     usr/share/java
++usr/lib/*/java/vtk-L*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0195b3716e7f9f28bff4ed009133e76fdf0c70b1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++libvtk9-java: shared-library-lacks-prerequisites
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..78991b8c1c57b28f6685abee06597093af519502
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++debian/manpages/vtkParseJava-9.6.1
++debian/manpages/vtkWrapJava-9.6.1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3834a17a3956fffe4894ea2cad30d3e86d6f9741
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++usr/lib/*/*Qt*.so
++usr/include/vtk-9.6/*Qt*
++usr/include/vtk-9.6/Q*
++usr/include/vtk*/vtkQWidget*
++usr/include/vtk*/vtkQImageToImageSource.h
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4c7a2dd856392c14a08d39f1b89de47e377c57d6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/*Qt*.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..beca3ffc3f9d445ca8fbf63616e557003188cdce
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++libvtk9.6-qt: package-name-doesnt-match-sonames
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8ddd0b2db5393f47248b1bf8a6496d0647a602c1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/lib/*/*.so.*
++usr/lib/*/vtk-9.6
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..27d1fa99938d34734d60273bb3931d61e5328e97
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++libvtk9.6: package-name-doesnt-match-sonames
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..edc3db69c27d48824f0bf40a6bf614c1545f2e44
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,82 @@@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
++.TH PYTHON "1" "October 2025" "Python 3.13.8" "User Commands"
++.SH NAME
++pvtkpython \- Parallel Python interpreter with VTK library bindings
++.SH DESCRIPTION
++usage: python [option] ... [\-c cmd | \fB\-m\fR mod | file | \fB\-]\fR [arg] ...
++Options (and corresponding environment variables):
++\fB\-b\fR     : issue warnings about converting bytes/bytearray to str and comparing
++.IP
++bytes/bytearray with str or bytes with int. (\fB\-bb\fR: issue errors)
++.PP
++\fB\-B\fR     : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x
++\fB\-c\fR cmd : program passed in as string (terminates option list)
++\fB\-d\fR     : turn on parser debugging output (for experts only, only works on
++.IP
++debug builds); also PYTHONDEBUG=x
++.PP
++\fB\-E\fR     : ignore PYTHON* environment variables (such as PYTHONPATH)
++\fB\-h\fR     : print this help message and exit (also \-? or \fB\-\-help\fR)
++\fB\-i\fR     : inspect interactively after running script; forces a prompt even
++.IP
++if stdin does not appear to be a terminal; also PYTHONINSPECT=x
++.PP
++\fB\-I\fR     : isolate Python from the user's environment (implies \fB\-E\fR, \fB\-P\fR and \fB\-s\fR)
++\fB\-m\fR mod : run library module as a script (terminates option list)
++\fB\-O\fR     : remove assert and __debug__\-dependent statements; add .opt\-1 before
++.IP
++\&.pyc extension; also PYTHONOPTIMIZE=x
++.PP
++\fB\-OO\fR    : do \fB\-O\fR changes and also discard docstrings; add .opt\-2 before
++.IP
++\&.pyc extension
++.PP
++\fB\-P\fR     : don't prepend a potentially unsafe path to sys.path; also
++.IP
++PYTHONSAFEPATH
++.PP
++\fB\-q\fR     : don't print version and copyright messages on interactive startup
++\fB\-s\fR     : don't add user site directory to sys.path; also PYTHONNOUSERSITE=x
++\fB\-S\fR     : don't imply 'import site' on initialization
++\fB\-u\fR     : force the stdout and stderr streams to be unbuffered;
++.IP
++this option has no effect on stdin; also PYTHONUNBUFFERED=x
++.PP
++\fB\-v\fR     : verbose (trace import statements); also PYTHONVERBOSE=x
++.IP
++can be supplied multiple times to increase verbosity
++.PP
++\fB\-V\fR     : print the Python version number and exit (also \fB\-\-version\fR)
++.IP
++when given twice, print more information about the build
++.PP
++\fB\-W\fR arg : warning control; arg is action:message:category:module:lineno
++.IP
++also PYTHONWARNINGS=arg
++.PP
++\fB\-x\fR     : skip first line of source, allowing use of non\-Unix forms of #!cmd
++\fB\-X\fR opt : set implementation\-specific option
++\fB\-\-check\-hash\-based\-pycs\fR always|default|never:
++.IP
++control how Python invalidates hash\-based .pyc files
++.PP
++\fB\-\-help\-env\fR: print help about Python environment variables and exit
++\fB\-\-help\-xoptions\fR: print help about implementation\-specific \fB\-X\fR options and exit
++\fB\-\-help\-all\fR: print complete help information and exit
++.PP
++Arguments:
++file   : program read from script file
++\-      : program read from stdin (default; interactive mode if a tty)
++arg ...: arguments passed to program in sys.argv[1:]
++.SH "SEE ALSO"
++The full documentation for
++.B Python
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B Python
++programs are properly installed at your site, the command
++.IP
++.B info Python
++.PP
++should give you access to the complete manual.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4904cbb2d2c33bb0cca2bc709ee975b90f707362
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,65 @@@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
++.TH VTKPARSEJAVA-9.6 "1" "October 2025" "vtkParseJava-9.6 9.6" "User Commands"
++.SH NAME
++vtkParseJava-9.6 \- Parses C++ headers for Java wrapper generation
++.SH SYNOPSIS
++.B vtkParseJava-9.6
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-MF\fR <file>
++write dependency information to a file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++\fB\-Wempty\fR
++warn when nothing is wrapped
++.TP
++\fB\-Wno\-empty\fR
++do not warn when nothing is wrapped
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkParseJava-9.6
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B vtkParseJava-9.6
++programs are properly installed at your site, the command
++.IP
++.B info vtkParseJava-9.6
++.PP
++should give you access to the complete manual.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d5d37730477e5d5f478bbf06393ef2279ed49e55
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,17 @@@
++.TH VTKPROBEOPENGLVERSION 1 "October 2025" "VTK 9.6" "User Commands"
++.SH NAME
++vtkProbeOpenGLVersion \- Test and report system OpenGL version
++.SH SYNOPSIS
++\fBvtkProbeOpenGLVersion\fR
++.SH DESCRIPTION
++\fBvtkProbeOpenGLVersion\fR is a diagnostic utility included with the Visualization Toolkit (VTK) 9.6. It creates a simple VTK rendering window to test and report the system's OpenGL capabilities to standard output.
++.PP
++This tool is primarily used for debugging graphics-related issues, such as verifying hardware acceleration or diagnosing problems in virtualized or remote desktop environments. VTK 9.6 includes new OpenGL error reporting capabilities, which may provide more detailed output if the VTK build was configured with OpenGL debugging enabled.
++.PP
++The program does not accept any command-line options. It runs automatically, performs its tests, and exits after a brief pause.
++.SH SEE ALSO
++\fBvtk\fR(1)
++.SH BUGS
++No known bugs.
++.SH AUTHOR
++This manual page was written for VTK 9.6.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e24dbcc65cfa158c68f11d03fa858380bc8f841d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,56 @@@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
++.TH VTKWRAPHIERARCHY-9.6 "1" "October 2025" "vtkWrapHierarchy-9.6 9.6" "User Commands"
++.SH NAME
++vtkWrapHierarchy-9.6 \- Builds a class hierarchy from C++ header files for VTK wrapping
++.SH SYNOPSIS
++.B vtkWrapHierarchy-9.6
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-MF\fR <file>
++write dependency information to a file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++\fB\-Wempty\fR
++warn when nothing is wrapped
++.TP
++\fB\-Wno\-empty\fR
++do not warn when nothing is wrapped
++.TP
++@<file>
++read arguments from a file
++.SH "SEE ALSO"
++The full documentation for
++.B vtkWrapHierarchy-9.6
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B vtkWrapHierarchy-9.6
++programs are properly installed at your site, the command
++.IP
++.B info vtkWrapHierarchy-9.6
++.PP
++should give you access to the complete manual.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bb4b1d1be99b63e58763beb3b0bedcda165fe8ba
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,65 @@@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
++.TH VTKWRAPJAVA-9.6 "1" "October 2025" "vtkWrapJava-9.6 9.6" "User Commands"
++.SH NAME
++vtkWrapJava-9.6 \- Generates JNI glue code for VTK Java wrappers
++.SH SYNOPSIS
++.B vtkWrapJava-9.6
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-MF\fR <file>
++write dependency information to a file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++\fB\-Wempty\fR
++warn when nothing is wrapped
++.TP
++\fB\-Wno\-empty\fR
++do not warn when nothing is wrapped
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkWrapJava-9.6
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B vtkWrapJava-9.6
++programs are properly installed at your site, the command
++.IP
++.B info vtkWrapJava-9.6
++.PP
++should give you access to the complete manual.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6fbcbf4b7cb66c2a045c9bc032b0f5eb8141f24f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,65 @@@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
++.TH VTKWRAPJAVASCRIPT-9.6 "1" "October 2025" "vtkWrapJavaScript-9.6 9.6" "User Commands"
++.SH NAME
++vtkWrapJavaScript-9.6 \- Generates JavaScript/Embind wrapper code for VTK objects
++.SH SYNOPSIS
++.B vtkWrapJavaScript-9.6
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-MF\fR <file>
++write dependency information to a file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++\fB\-Wempty\fR
++warn when nothing is wrapped
++.TP
++\fB\-Wno\-empty\fR
++do not warn when nothing is wrapped
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkWrapJavaScript-9.6
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B vtkWrapJavaScript-9.6
++programs are properly installed at your site, the command
++.IP
++.B info vtkWrapJavaScript-9.6
++.PP
++should give you access to the complete manual.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..93761374d214c08e1e3a97da4d62ffc6123acf9d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,65 @@@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
++.TH VTKWRAPPYTHON-9.6 "1" "October 2025" "vtkWrapPython-9.6 9.6" "User Commands"
++.SH NAME
++vtkWrapPython-9.6 \- Generates Python wrapper code from VTK C++ header files
++.SH SYNOPSIS
++.B vtkWrapPython-9.6
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-MF\fR <file>
++write dependency information to a file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++\fB\-Wempty\fR
++warn when nothing is wrapped
++.TP
++\fB\-Wno\-empty\fR
++do not warn when nothing is wrapped
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkWrapPython-9.6
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B vtkWrapPython-9.6
++programs are properly installed at your site, the command
++.IP
++.B info vtkWrapPython-9.6
++.PP
++should give you access to the complete manual.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ae261ea58769c945213a409e379a334d35bd71d4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++.TH VTKWRAPPYTHONINIT 1 "October 2025" "VTK 9.6" "User Commands"
++.SH NAME
++vtkWrapPythonInit \- A VTK utility to generate Python module initialization code
++.SH SYNOPSIS
++\fBvtkWrapPythonInit\fR \fIinput_file\fR \fIinit_file\fR
++.SH DESCRIPTION
++\fBvtkWrapPythonInit\fR is a tool from the Visualization Toolkit (VTK) used to generate the C++ source code for a Python extension module's initialization function. This `PyInit` entry point is responsible for registering all the types defined in a given module.
++.PP
++This tool is used by the VTK build system during the compilation of Python wrappers for C++ classes.
++.SH ARGUMENTS
++.TP
++\fIinput_file\fR
++A file listing the wrapped classes that need to be initialized.
++.TP
++\fIinit_file\fR
++The output C++ source file that contains the Python module initialization function.
++.SH SEE ALSO
++\fBvtk\fR(1)
++.br
++\fBvtkWrapPython\fR(1)
++.SH BUGS
++No known bugs.
++.SH AUTHOR
++This manual page was written for VTK 9.6.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..89423371aa1daae434424c5c34f66388222f0d3d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,65 @@@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
++.TH VTKWRAPSERDES-9.6 "1" "October 2025" "vtkWrapSerDes-9.6 9.6" "User Commands"
++.SH NAME
++vtkWrapSerDes-9.6 \- Generates serialization and deserialization code for VTK objects
++.SH SYNOPSIS
++.B vtkWrapSerDes-9.6
++[\fI\,options\/\fR] \fI\,infile\/\fR...
++.SH DESCRIPTION
++.TP
++\fB\-\-help\fR
++print this help message
++.TP
++\fB\-\-version\fR
++print the VTK version
++.TP
++\fB\-o\fR <file>
++the output file
++.TP
++\fB\-I\fR <dir>
++add an include directory
++.TP
++\fB\-D\fR <macro[=def]>
++define a preprocessor macro
++.TP
++\fB\-U\fR <macro>
++undefine a preprocessor macro
++.TP
++\fB\-imacros\fR <file>
++read macros from a header file
++.TP
++\fB\-MF\fR <file>
++write dependency information to a file
++.TP
++\fB\-undef\fR
++do not predefine platform macros
++.TP
++\fB\-Wempty\fR
++warn when nothing is wrapped
++.TP
++\fB\-Wno\-empty\fR
++do not warn when nothing is wrapped
++.TP
++@<file>
++read arguments from a file
++.TP
++\fB\-dM\fR
++dump all macro definitions to output
++.TP
++\fB\-\-hints\fR <file>
++the hints file to use
++.TP
++\fB\-\-types\fR <file>
++the type hierarchy file to use
++.SH "SEE ALSO"
++The full documentation for
++.B vtkWrapSerDes-9.6
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B vtkWrapSerDes-9.6
++programs are properly installed at your site, the command
++.IP
++.B info vtkWrapSerDes-9.6
++.PP
++should give you access to the complete manual.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bea63005e8c6ea269d745c83003014330181b098
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,82 @@@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
++.TH PYTHON "1" "October 2025" "Python 3.13.8" "User Commands"
++.SH NAME
++vtkpython \- Python interpreter with VTK library bindings
++.SH DESCRIPTION
++usage: python [option] ... [\-c cmd | \fB\-m\fR mod | file | \fB\-]\fR [arg] ...
++Options (and corresponding environment variables):
++\fB\-b\fR     : issue warnings about converting bytes/bytearray to str and comparing
++.IP
++bytes/bytearray with str or bytes with int. (\fB\-bb\fR: issue errors)
++.PP
++\fB\-B\fR     : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x
++\fB\-c\fR cmd : program passed in as string (terminates option list)
++\fB\-d\fR     : turn on parser debugging output (for experts only, only works on
++.IP
++debug builds); also PYTHONDEBUG=x
++.PP
++\fB\-E\fR     : ignore PYTHON* environment variables (such as PYTHONPATH)
++\fB\-h\fR     : print this help message and exit (also \-? or \fB\-\-help\fR)
++\fB\-i\fR     : inspect interactively after running script; forces a prompt even
++.IP
++if stdin does not appear to be a terminal; also PYTHONINSPECT=x
++.PP
++\fB\-I\fR     : isolate Python from the user's environment (implies \fB\-E\fR, \fB\-P\fR and \fB\-s\fR)
++\fB\-m\fR mod : run library module as a script (terminates option list)
++\fB\-O\fR     : remove assert and __debug__\-dependent statements; add .opt\-1 before
++.IP
++\&.pyc extension; also PYTHONOPTIMIZE=x
++.PP
++\fB\-OO\fR    : do \fB\-O\fR changes and also discard docstrings; add .opt\-2 before
++.IP
++\&.pyc extension
++.PP
++\fB\-P\fR     : don't prepend a potentially unsafe path to sys.path; also
++.IP
++PYTHONSAFEPATH
++.PP
++\fB\-q\fR     : don't print version and copyright messages on interactive startup
++\fB\-s\fR     : don't add user site directory to sys.path; also PYTHONNOUSERSITE=x
++\fB\-S\fR     : don't imply 'import site' on initialization
++\fB\-u\fR     : force the stdout and stderr streams to be unbuffered;
++.IP
++this option has no effect on stdin; also PYTHONUNBUFFERED=x
++.PP
++\fB\-v\fR     : verbose (trace import statements); also PYTHONVERBOSE=x
++.IP
++can be supplied multiple times to increase verbosity
++.PP
++\fB\-V\fR     : print the Python version number and exit (also \fB\-\-version\fR)
++.IP
++when given twice, print more information about the build
++.PP
++\fB\-W\fR arg : warning control; arg is action:message:category:module:lineno
++.IP
++also PYTHONWARNINGS=arg
++.PP
++\fB\-x\fR     : skip first line of source, allowing use of non\-Unix forms of #!cmd
++\fB\-X\fR opt : set implementation\-specific option
++\fB\-\-check\-hash\-based\-pycs\fR always|default|never:
++.IP
++control how Python invalidates hash\-based .pyc files
++.PP
++\fB\-\-help\-env\fR: print help about Python environment variables and exit
++\fB\-\-help\-xoptions\fR: print help about implementation\-specific \fB\-X\fR options and exit
++\fB\-\-help\-all\fR: print complete help information and exit
++.PP
++Arguments:
++file   : program read from script file
++\-      : program read from stdin (default; interactive mode if a tty)
++arg ...: arguments passed to program in sys.argv[1:]
++.SH "SEE ALSO"
++The full documentation for
++.B Python
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B Python
++programs are properly installed at your site, the command
++.IP
++.B info Python
++.PP
++should give you access to the complete manual.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8df247af72add8bb10b2c4df009edd570f30a2b2
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,522 @@@
++#!/usr/bin/env python3
++"""
++VTK9 Memory Tracker & Compiler Launcher
++========================================
++Measures and reports:
++  1. Per-worker compiler peak memory (ru_maxrss) via CMAKE_CXX_COMPILER_LAUNCHER.
++  2. Total concurrent process-tree RSS and cgroup memory during dh_auto_build.
++  3. Statistical distribution (max, mean, p50, p90) and recommended arguments
++     for guess_concurrency --require-mem.
++
++Outputs all findings directly into the build log so they are preserved
++on Debian buildds, debusine, salsa-ci, and sbuild.
++"""
++
++import sys
++import os
++import time
++import subprocess
++import resource
++import fcntl
++import pathlib
++import itertools
++import threading
++import signal
++import math
++
++
++def get_mem_log_path(build_dir=None):
++    if "VTK_MEM_LOG" in os.environ:
++        return pathlib.Path(os.environ["VTK_MEM_LOG"])
++    if build_dir:
++        return pathlib.Path(build_dir) / "vtk_build_workers_mem.tsv"
++    return pathlib.Path("/tmp/vtk_build_workers_mem.tsv")
++
++
++def get_monitor_log_path(build_dir=None):
++    if "VTK_MONITOR_LOG" in os.environ:
++        return pathlib.Path(os.environ["VTK_MONITOR_LOG"])
++    if build_dir:
++        return pathlib.Path(build_dir) / "vtk_build_monitor.log"
++    return pathlib.Path("/tmp/vtk_build_monitor.log")
++
++
++# ---------------------------------------------------------------------------
++# Cgroup & System Memory Utilities
++# ---------------------------------------------------------------------------
++
++def read_cgroup_memory():
++    """Returns (current_bytes, peak_bytes) from cgroup v2 if available."""
++    try:
++        cgroup_text = pathlib.Path("/proc/self/cgroup").read_text(encoding="utf-8").strip()
++        parts = cgroup_text.split(":", 2)
++        if len(parts) < 3:
++            return None, None
++        group_str = parts[2].lstrip("/")
++        group = pathlib.PurePath(group_str)
++        sfc = pathlib.Path("/sys/fs/cgroup")
++        for g in itertools.chain((group,), group.parents):
++            p = sfc / g
++            cur_file = p / "memory.current"
++            peak_file = p / "memory.peak"
++            if cur_file.exists():
++                cur_val = int(cur_file.read_text().strip())
++                peak_val = int(peak_file.read_text().strip()) if peak_file.exists() else cur_val
++                return cur_val, peak_val
++    except Exception:
++        pass
++    return None, None
++
++
++def read_proc_meminfo():
++    """Returns dict of /proc/meminfo in KiB."""
++    info = {}
++    try:
++        with open("/proc/meminfo", "r", encoding="ascii") as f:
++            for line in f:
++                parts = line.split(":")
++                if len(parts) == 2:
++                    k = parts[0].strip()
++                    v = parts[1].strip().split()[0]
++                    if v.isdigit():
++                        info[k] = int(v)
++    except Exception:
++        pass
++    return info
++
++
++def get_descendant_pids(root_pid):
++    """Find all descendant PIDs of root_pid."""
++    children = {}
++    rss_map = {}
++    try:
++        for entry in os.listdir("/proc"):
++            if not entry.isdigit():
++                continue
++            pid = int(entry)
++            try:
++                ppid = None
++                rss = 0
++                with open(f"/proc/{pid}/status", "r", encoding="ascii") as f:
++                    for line in f:
++                        if line.startswith("PPid:"):
++                            ppid = int(line.split()[1])
++                        elif line.startswith("VmRSS:"):
++                            rss = int(line.split()[1])
++                if ppid is not None:
++                    children.setdefault(ppid, []).append(pid)
++                    rss_map[pid] = rss
++            except (FileNotFoundError, ProcessLookupError, PermissionError):
++                pass
++    except Exception:
++        pass
++
++    descendants = []
++    stack = [root_pid]
++    while stack:
++        curr = stack.pop()
++        if curr in children:
++            for child in children[curr]:
++                descendants.append(child)
++                stack.append(child)
++
++    total_rss = sum(rss_map.get(p, 0) for p in descendants) + rss_map.get(root_pid, 0)
++    return descendants, total_rss
++
++
++# ---------------------------------------------------------------------------
++# Background Sampler
++# ---------------------------------------------------------------------------
++
++class MemoryMonitor(threading.Thread):
++    def __init__(self, root_pid, log_file, interval=1.0):
++        super().__init__(daemon=True)
++        self.root_pid = root_pid
++        self.log_file = log_file
++        self.interval = interval
++        self.stop_event = threading.Event()
++        self.peak_tree_rss_kib = 0
++        self.peak_cgroup_bytes = 0
++        self.min_avail_kib = None
++        self.start_avail_kib = None
++
++    def run(self):
++        meminfo = read_proc_meminfo()
++        self.start_avail_kib = meminfo.get("MemAvailable")
++        self.min_avail_kib = self.start_avail_kib
++
++        while not self.stop_event.is_set():
++            # Process-tree RSS
++            _, tree_rss_kib = get_descendant_pids(self.root_pid)
++            if tree_rss_kib > self.peak_tree_rss_kib:
++                self.peak_tree_rss_kib = tree_rss_kib
++
++            # Cgroup
++            cur_cg, peak_cg = read_cgroup_memory()
++            if peak_cg and peak_cg > self.peak_cgroup_bytes:
++                self.peak_cgroup_bytes = peak_cg
++            elif cur_cg and cur_cg > self.peak_cgroup_bytes:
++                self.peak_cgroup_bytes = cur_cg
++
++            # MemAvailable
++            cur_info = read_proc_meminfo()
++            avail = cur_info.get("MemAvailable")
++            if avail is not None:
++                if self.min_avail_kib is None or avail < self.min_avail_kib:
++                    self.min_avail_kib = avail
++
++            self.stop_event.wait(self.interval)
++
++        # Write final monitor stats
++        try:
++            self.log_file.parent.mkdir(parents=True, exist_ok=True)
++            with open(self.log_file, "w", encoding="utf-8") as f:
++                f.write(f"peak_tree_rss_kib={self.peak_tree_rss_kib}\n")
++                f.write(f"peak_cgroup_bytes={self.peak_cgroup_bytes}\n")
++                f.write(f"start_avail_kib={self.start_avail_kib or 0}\n")
++                f.write(f"min_avail_kib={self.min_avail_kib or 0}\n")
++        except Exception as e:
++            print(f"[memory-tracker] Failed to write monitor log: {e}", file=sys.stderr)
++
++
++# ---------------------------------------------------------------------------
++# Compiler Launcher
++# ---------------------------------------------------------------------------
++
++def run_compiler_launcher(cmd_args):
++    """Invoked by CMake as compiler launcher: memory-tracker.py <compiler> <args...>"""
++    t0 = time.monotonic()
++    proc = subprocess.run(cmd_args)
++    duration = time.monotonic() - t0
++
++    ru = resource.getrusage(resource.RUSAGE_CHILDREN)
++    # ru_maxrss on Linux is in KiB
++    rss_kib = ru.ru_maxrss
++
++    # Identify source file being compiled
++    src_file = "unknown"
++    for arg in cmd_args[1:]:
++        if arg.endswith((".cxx", ".cpp", ".cc", ".c", ".C")):
++            src_file = arg
++            break
++
++    log_path = get_mem_log_path()
++    try:
++        log_path.parent.mkdir(parents=True, exist_ok=True)
++        with open(log_path, "a", encoding="utf-8") as f:
++            fcntl.flock(f, fcntl.LOCK_EX)
++            try:
++                f.write(f"{rss_kib}\t{duration:.2f}\t{proc.returncode}\t{src_file}\n")
++            finally:
++                fcntl.flock(f, fcntl.LOCK_UN)
++    except Exception as e:
++        # Never fail compilation because of logging error
++        print(f"[memory-tracker] Logging warning: {e}", file=sys.stderr)
++
++    sys.exit(proc.returncode)
++
++
++# ---------------------------------------------------------------------------
++# Report Generator
++# ---------------------------------------------------------------------------
++
++def format_bytes(n_bytes):
++    if n_bytes >= 1024**3:
++        return f"{n_bytes / 1024**3:.2f} GB"
++    if n_bytes >= 1024**2:
++        return f"{n_bytes / 1024**2:.1f} MB"
++    return f"{n_bytes / 1024:.0f} KB"
++
++
++def format_kib(kib):
++    return format_bytes(kib * 1024)
++
++
++def round_memory_str(bytes_val):
++    """Round to clean memory string suitable for guess_concurrency (e.g. 4G, 1.5G, 800M)."""
++    gb = bytes_val / (1024**3)
++    mb = bytes_val / (1024**2)
++    if gb >= 2.0:
++        return f"{round(gb):.0f}G"
++    elif gb >= 1.0:
++        return f"{round(gb * 2) / 2:.1f}G".rstrip(".0G") + "G"
++    else:
++        # Round to nearest 50M or 100M
++        rounded_mb = int(round(mb / 50.0) * 50)
++        return f"{max(100, rounded_mb)}M"
++
++
++def generate_report(build_dir=None, tag="Build"):
++    mem_log = get_mem_log_path(build_dir)
++    mon_log = get_monitor_log_path(build_dir)
++
++    workers = []
++    if mem_log.exists():
++        with open(mem_log, "r", encoding="utf-8") as f:
++            for line in f:
++                parts = line.strip().split("\t")
++                if len(parts) >= 4:
++                    rss_kib = int(parts[0])
++                    dur = float(parts[1])
++                    ret = int(parts[2])
++                    src = parts[3]
++                    workers.append({
++                        "rss_kib": rss_kib,
++                        "duration": dur,
++                        "ret": ret,
++                        "src": src
++                    })
++
++    mon_stats = {}
++    if mon_log.exists():
++        with open(mon_log, "r", encoding="utf-8") as f:
++            for line in f:
++                if "=" in line:
++                    k, v = line.strip().split("=", 1)
++                    mon_stats[k] = int(v) if v.isdigit() else v
++
++    arch = os.environ.get("DEB_HOST_ARCH", "unknown")
++    arch_bits = os.environ.get("DEB_HOST_ARCH_BITS", "unknown")
++
++    print("\n" + "=" * 80)
++    print(f" VTK 9 BUILD MEMORY REPORT [{tag}]  (Arch: {arch}, Bits: {arch_bits})")
++    print("=" * 80)
++
++    if not workers:
++        print(" [!] No compilation worker records collected.")
++    else:
++        # 1. Unweighted metrics (per translation unit)
++        rss_values = [w["rss_kib"] for w in workers]
++        rss_values.sort()
++        n = len(workers)
++        max_worker = max(workers, key=lambda w: w["rss_kib"])
++        mean_rss_kib = sum(rss_values) / n
++        var_rss_kib = sum((x - mean_rss_kib) ** 2 for x in rss_values) / n
++        std_rss_kib = math.sqrt(var_rss_kib)
++
++        # Empirical sample quantiles
++        median_rss_kib = rss_values[n // 2]
++        sample_p75_kib = rss_values[int(n * 0.75)]
++        sample_p90_kib = rss_values[int(n * 0.90)]
++        sample_p95_kib = rss_values[int(n * 0.95)]
++
++        # Parametric percentiles (Mean as p50, Mean + Z * sigma)
++        param_p50_kib = mean_rss_kib
++        param_p75_kib = mean_rss_kib + 0.6745 * std_rss_kib
++        param_p90_kib = mean_rss_kib + 1.2816 * std_rss_kib
++        param_p95_kib = mean_rss_kib + 1.6449 * std_rss_kib
++
++        # 2. Time-weighted metrics (memory residency per worker-second)
++        total_time_sec = sum(w["duration"] for w in workers)
++        if total_time_sec > 0:
++            tw_mean_rss_kib = sum(w["rss_kib"] * w["duration"] for w in workers) / total_time_sec
++            tw_var_rss_kib = sum(w["duration"] * (w["rss_kib"] - tw_mean_rss_kib) ** 2 for w in workers) / total_time_sec
++            tw_std_rss_kib = math.sqrt(tw_var_rss_kib)
++
++            # Parametric time-weighted percentiles (Mean as p50, Mean + Z * sigma)
++            tw_param_p50_kib = tw_mean_rss_kib
++            tw_param_p75_kib = tw_mean_rss_kib + 0.6745 * tw_std_rss_kib
++            tw_param_p90_kib = tw_mean_rss_kib + 1.2816 * tw_std_rss_kib
++            tw_param_p95_kib = tw_mean_rss_kib + 1.6449 * tw_std_rss_kib
++
++            # Sort workers by rss_kib for time-weighted empirical cumulative percentiles
++            sorted_by_rss = sorted(workers, key=lambda w: w["rss_kib"])
++            cum_time = 0.0
++            percentiles = [0.50, 0.75, 0.90, 0.95]
++            tw_pct = {}
++            p_idx = 0
++            for w in sorted_by_rss:
++                cum_time += w["duration"]
++                while p_idx < len(percentiles) and cum_time >= percentiles[p_idx] * total_time_sec:
++                    tw_pct[percentiles[p_idx]] = w["rss_kib"]
++                    p_idx += 1
++            for p in percentiles:
++                if p not in tw_pct:
++                    tw_pct[p] = sorted_by_rss[-1]["rss_kib"]
++
++            tw_sample_median = tw_pct[0.50]
++            tw_sample_p75 = tw_pct[0.75]
++            tw_sample_p90 = tw_pct[0.90]
++            tw_sample_p95 = tw_pct[0.95]
++        else:
++            tw_mean_rss_kib = mean_rss_kib
++            tw_std_rss_kib = std_rss_kib
++            tw_param_p50_kib = param_p50_kib
++            tw_param_p75_kib = param_p75_kib
++            tw_param_p90_kib = param_p90_kib
++            tw_param_p95_kib = param_p95_kib
++            tw_sample_median = median_rss_kib
++            tw_sample_p75 = sample_p75_kib
++            tw_sample_p90 = sample_p90_kib
++            tw_sample_p95 = sample_p95_kib
++
++        print(f"Total compilation units tracked:  {n}")
++        if total_time_sec > 0:
++            print(f"Total worker CPU time:            {total_time_sec / 3600:.2f} core-hours ({total_time_sec:.1f}s)")
++        print(f"Single worker MAX memory:         {format_kib(max_worker['rss_kib']):<10} ({max_worker['duration']:.1f}s) in {max_worker['src']}")
++        print("-" * 80)
++        print(" Memory Usage Distribution (Parametric: Mean as p50, Mean + Z*stddev):")
++        print(f"  {'Metric':<25} {'Unweighted (per unit)':<25} {'Time-Weighted (per second)':<25}")
++        print(f"  {'-'*25} {'-'*25} {'-'*25}")
++        print(f"  {'Mean (p50)':<25} {format_kib(param_p50_kib):<25} {format_kib(tw_param_p50_kib):<25}")
++        print(f"  {'Std Deviation (sigma)':<25} {format_kib(std_rss_kib):<25} {format_kib(tw_std_rss_kib):<25}")
++        print(f"  {'75th Percentile (p75)':<25} {format_kib(param_p75_kib):<25} {format_kib(tw_param_p75_kib):<25}")
++        print(f"  {'90th Percentile (p90)':<25} {format_kib(param_p90_kib):<25} {format_kib(tw_param_p90_kib):<25}")
++        print(f"  {'95th Percentile (p95)':<25} {format_kib(param_p95_kib):<25} {format_kib(tw_param_p95_kib):<25}")
++        print("-" * 80)
++        print(" Empirical / Sample Quantiles (Observed in data):")
++        print(f"  {'Sample Median':<25} {format_kib(median_rss_kib):<25} {format_kib(tw_sample_median):<25}")
++        print(f"  {'Sample 75th Percentile':<25} {format_kib(sample_p75_kib):<25} {format_kib(tw_sample_p75):<25}")
++        print(f"  {'Sample 90th Percentile':<25} {format_kib(sample_p90_kib):<25} {format_kib(tw_sample_p90):<25}")
++        print(f"  {'Sample 95th Percentile':<25} {format_kib(sample_p95_kib):<25} {format_kib(tw_sample_p95):<25}")
++
++        # Time-weighted brackets / histogram
++        if total_time_sec > 0:
++            print("-" * 80)
++            print(" Time-Weighted Memory Residency Breakdown:")
++            print(f"  {'Memory Range':<18} {'Unit Count':<12} {'CPU Time':<15} {'% of Time':<12} {'Cumul %':<10}")
++            print(f"  {'-'*18} {'-'*12} {'-'*15} {'-'*12} {'-'*10}")
++            brackets = [
++                ("< 250 MB", 0, 250 * 1024),
++                ("250 - 500 MB", 250 * 1024, 500 * 1024),
++                ("500 MB - 1 GB", 500 * 1024, 1024 * 1024),
++                ("1.0 - 2.0 GB", 1024 * 1024, 2 * 1024 * 1024),
++                ("2.0 - 4.0 GB", 2 * 1024 * 1024, 4 * 1024 * 1024),
++                ("> 4.0 GB", 4 * 1024 * 1024, float("inf")),
++            ]
++            cum_pct = 0.0
++            for label, low, high in brackets:
++                b_units = [w for w in workers if low <= w["rss_kib"] < high]
++                b_time = sum(w["duration"] for w in b_units)
++                pct = (b_time / total_time_sec) * 100 if total_time_sec > 0 else 0
++                cum_pct += pct
++                if b_units:
++                    print(f"  {label:<18} {len(b_units):<12} {b_time:8.1f}s       {pct:5.1f}%       {cum_pct:5.1f}%")
++
++        # Print top 5 memory hogs
++        print("-" * 80)
++        print(" Top 5 Heaviest Compilation Units:")
++        top_workers = sorted(workers, key=lambda w: w["rss_kib"], reverse=True)[:5]
++        for rank, w in enumerate(top_workers, 1):
++            src_display = w["src"]
++            if len(src_display) > 50:
++                src_display = "..." + src_display[-47:]
++            print(f"  #{rank}: {format_kib(w['rss_kib']):<10} ({w['duration']:5.1f}s)  {src_display}")
++
++    # Monitor aggregate stats
++    print("-" * 80)
++    print(" Aggregate Process & System Memory During Build:")
++    peak_tree_kib = mon_stats.get("peak_tree_rss_kib", 0)
++    if peak_tree_kib:
++        print(f"  Peak concurrent worker RSS (sum): {format_kib(peak_tree_kib)}")
++    peak_cg = mon_stats.get("peak_cgroup_bytes", 0)
++    if peak_cg:
++        print(f"  Peak cgroup memory:               {format_bytes(peak_cg)}")
++    start_avail = mon_stats.get("start_avail_kib", 0)
++    min_avail = mon_stats.get("min_avail_kib", 0)
++    if start_avail and min_avail:
++        ram_drop = start_avail - min_avail
++        print(f"  Initial MemAvailable:             {format_kib(start_avail)}")
++        print(f"  Minimum MemAvailable:             {format_kib(min_avail)} (net used by build: ~{format_kib(ram_drop)})")
++
++    # Recommendations for guess_concurrency based on time-weighted metrics
++    if workers:
++        max_bytes = max_worker["rss_kib"] * 1024
++        tw_mean_bytes = tw_mean_rss_kib * 1024
++        tw_p95_bytes = tw_param_p95_kib * 1024
++
++        rec_tw_mean = f"{round_memory_str(max_bytes)},{round_memory_str(tw_mean_bytes)}"
++        rec_tw_p95 = f"{round_memory_str(max_bytes)},{round_memory_str(tw_p95_bytes)}"
++
++        print("-" * 80)
++        print(" Recommended guess_concurrency Settings (based on time-weighted residency):")
++        print(f"  Balanced     (Max, Time-Weighted Mean):         guess_concurrency --require-mem {rec_tw_mean}")
++        print(f"  Conservative (Max, Parametric Time-Weighted P95): guess_concurrency --require-mem {rec_tw_p95}")
++    print("=" * 80 + "\n")
++
++
++# ---------------------------------------------------------------------------
++# Wrap Command
++# ---------------------------------------------------------------------------
++
++def wrap_command(build_dir, tag, command):
++    """Starts monitor, sets environment, runs command, and prints report on exit."""
++    if build_dir:
++        os.environ["VTK_MEM_LOG"] = str(get_mem_log_path(build_dir))
++        os.environ["VTK_MONITOR_LOG"] = str(get_monitor_log_path(build_dir))
++
++    monitor = MemoryMonitor(
++        root_pid=os.getpid(),
++        log_file=get_monitor_log_path(build_dir),
++        interval=1.0
++    )
++    monitor.start()
++
++    exit_code = 1
++    try:
++        proc = subprocess.run(command)
++        exit_code = proc.returncode
++    finally:
++        monitor.stop_event.set()
++        monitor.join(timeout=3.0)
++        generate_report(build_dir, tag=tag)
++
++    sys.exit(exit_code)
++
++
++# ---------------------------------------------------------------------------
++# CLI Entry Point
++# ---------------------------------------------------------------------------
++
++def main():
++    if len(sys.argv) < 2:
++        print("Usage: memory-tracker.py [wrap|report] ... OR <compiler> <args...>", file=sys.stderr)
++        sys.exit(1)
++
++    subcmd = sys.argv[1]
++    if subcmd == "report":
++        build_dir = None
++        tag = "Build"
++        args = sys.argv[2:]
++        while args:
++            if args[0] == "--build-dir" and len(args) > 1:
++                build_dir = args[1]
++                args = args[2:]
++            elif args[0] == "--tag" and len(args) > 1:
++                tag = args[1]
++                args = args[2:]
++            else:
++                args = args[1:]
++        generate_report(build_dir, tag=tag)
++        sys.exit(0)
++
++    elif subcmd == "wrap":
++        build_dir = None
++        tag = "Build"
++        cmd = []
++        i = 2
++        while i < len(sys.argv):
++            if sys.argv[i] == "--build-dir" and i + 1 < len(sys.argv):
++                build_dir = sys.argv[i + 1]
++                i += 2
++            elif sys.argv[i] == "--tag" and i + 1 < len(sys.argv):
++                tag = sys.argv[i + 1]
++                i += 2
++            elif sys.argv[i] == "--":
++                cmd = sys.argv[i + 1:]
++                break
++            else:
++                cmd = sys.argv[i:]
++                break
++        if not cmd:
++            print("Error: wrap requires a command to execute after '--'", file=sys.stderr)
++            sys.exit(1)
++        wrap_command(build_dir, tag, cmd)
++
++    else:
++        # Invoked as compiler launcher by CMake
++        run_compiler_launcher(sys.argv[1:])
++
++
++if __name__ == "__main__":
++    main()
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..09ba84969537c8b9b2c1b2eadb1ec96fa4e06f8e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++# viskores.pc is not built on 32-bit systems
++# and so is installed conditionally to libvtk9-dev in debian/rules.
++# This non-installed entry is needed for arch-independent builds
++# to workaround debhelper Bug#972222.
++usr/lib/*/pkgconfig/viskores.pc
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e939ca04766a8d6367b44e803400468613b9f2b2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++Description: Add missing GL header
++Author: Anton Gladky <gladk@debian.org>
++Forwarded: not-needed
++Last-Update: 2024-01-10
++
++--- a/GUISupport/Qt/QVTKOpenGLWindow.cxx
+++++ b/GUISupport/Qt/QVTKOpenGLWindow.cxx
++@@ -22,6 +22,8 @@
++ #include "vtkObjectFactory.h"
++ #include "vtkOpenGLState.h"
++ 
+++#include <GL/gl.h>
+++
++ VTK_ABI_NAMESPACE_BEGIN
++ QVTKOpenGLWindow::QVTKOpenGLWindow(QOpenGLWindow::UpdateBehavior ub, QWindow* p)
++   : QVTKOpenGLWindow(vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New(), nullptr, ub, p)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3e739a948e21585f4bb09232f42d02ac213193c4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++Description: _matplotlib
++Index: VTK-9.3.0/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h
++===================================================================
++--- VTK-9.3.0.orig/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h
+++++ VTK-9.3.0/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h
++@@ -190,6 +190,10 @@ private:
++    * to implement IsAvailable.
++    */
++   static Availability CheckMPLAvailability();
+++  static void DisableMPL()
+++    {
+++    MPLMathTextAvailable = UNAVAILABLE;
+++    };
++ 
++   ///@{
++   /**
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..15f4bf44a2e2850f47da1b203fd3dabe5da07962
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++Description: Do not try linking with -lsocket
++
++Index: VTK-9.3.0/Common/System/vtkTestSocketFeatures.cmake
++===================================================================
++--- VTK-9.3.0.orig/Common/System/vtkTestSocketFeatures.cmake
+++++ VTK-9.3.0/Common/System/vtkTestSocketFeatures.cmake
++@@ -11,9 +11,6 @@ check_library_exists("socket" getsocknam
++ 
++ if(NOT DEFINED VTK_HAVE_GETSOCKNAME_WITH_SOCKLEN_T)
++   set(VTK_GETSOCKNAME_LIBS)
++-  if(VTK_HAVE_LIBSOCKET)
++-    list(APPEND VTK_GETSOCKNAME_LIBS "socket")
++-  endif()
++   message(STATUS "Checking for getsockname with socklen_t")
++   try_compile(VTK_HAVE_GETSOCKNAME_WITH_SOCKLEN_T_COMPILED
++     ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/SocklenT
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b65e81ba33aa29306dd12bd9cfa068462fb05160
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,62 @@@
++Description: Fix path for the installation of python modules
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2020-11-06
++
++Index: vtk9/CMake/vtkModuleWrapPython.cmake
++===================================================================
++--- vtk9.orig/CMake/vtkModuleWrapPython.cmake
+++++ vtk9/CMake/vtkModuleWrapPython.cmake
++@@ -82,7 +82,7 @@ function (vtk_module_python_default_dest
++         "for Python modules.")
++       set(_vtk_python_version_suffix)
++     endif ()
++-    set(destination "${CMAKE_INSTALL_LIBDIR}/python${_vtk_python_version_suffix}/site-packages")
+++    set(destination "lib/python3/dist-packages")
++   endif ()
++ 
++   set("${var}" "${destination}" PARENT_SCOPE)
++Index: vtk9/Utilities/Python/CMakeLists.txt
++===================================================================
++--- vtk9.orig/Utilities/Python/CMakeLists.txt
+++++ vtk9/Utilities/Python/CMakeLists.txt
++@@ -54,7 +54,7 @@ if (NOT VTK_PYTHON_SITE_PACKAGES_SUFFIX)
++     set(VTK_PYTHON_SITE_PACKAGES_SUFFIX "Lib/site-packages")
++   else ()
++     set(VTK_PYTHON_SITE_PACKAGES_SUFFIX
++-      "python${vtk_python_version_pair}/site-packages")
+++      "python3/dist-packages")
++   endif ()
++ endif ()
++ 
++Index: vtk9/Wrapping/Python/vtkmodules/__init__.py.in
++===================================================================
++--- vtk9.orig/Wrapping/Python/vtkmodules/__init__.py.in
+++++ vtk9/Wrapping/Python/vtkmodules/__init__.py.in
++@@ -8,21 +8,20 @@ import importlib.util
++ from pathlib import Path
++ 
++ from importlib.abc import MetaPathFinder
++-from importlib.machinery import ExtensionFileLoader
+++from importlib.machinery import ExtensionFileLoader, EXTENSION_SUFFIXES
++ 
++ LOADING_STACK = []
++-LIB_EXTS = [".pyd", ".so"]
+++
++ 
++ def find_lib_path(paths, vtk_module_name):
++-    for ext in LIB_EXTS:
+++    for ext in EXTENSION_SUFFIXES:
++         for base_path in paths:
++             # vtk-wheel => vtkCommonCore.cpython-310-darwin.so
++             # paraview  => vtkCommonCore.so
++             # Caution: vtkIOXML vs vtkIOXMLParser
++-            for f in Path(base_path).glob(f"{vtk_module_name}[.-]*"):
++-                resolved_file = f.resolve()
++-                if resolved_file.is_file() and ext in resolved_file.suffixes:
++-                    return str(resolved_file)
+++            f = Path(base_path) / f"{vtk_module_name}{ext}"
+++            if f.is_file():
+++                return str(f.resolve())
++ 
++ 
++ class VTKMetaHook(MetaPathFinder):
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2a50bd7a8b995f88994a7658b10e8b9d2363061a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,64 @@@
++Description: Fix shebang for the perl scripts
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2020-11-08
++
++Index: VTK-9.3.0/Utilities/Doxygen/doc_class2example.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_class2example.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_class2example.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2004-06-09 11:12:38 barre>
++ #
++ # Build cross-references between classes and examples
++Index: VTK-9.3.0/Utilities/Doxygen/doc_cleanhtml.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_cleanhtml.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_cleanhtml.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2002-10-25 20:17:59 barre>
++ #
++ # Clean the HTML generated by Doxygen to remove some layout quicks
++Index: VTK-9.3.0/Utilities/Doxygen/doc_codematch.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_codematch.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_codematch.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2002-01-18 16:17:26 barre>
++ #
++ # Summary ?
++Index: VTK-9.3.0/Utilities/Doxygen/doc_index.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_index.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_index.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2001-11-21 17:40:48 barre>
++ #
++ # Build full-text index
++Index: VTK-9.3.0/Utilities/Doxygen/doc_rmpath.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_rmpath.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_rmpath.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2001-10-05 11:49:40 barre>
++ #
++ # Remove path to intermediate Doxygen dir from html doc
++Index: VTK-9.3.0/Utilities/Doxygen/doc_version.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_version.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_version.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # Time-stamp: <2006-11-15 13:25:02 barre>
++ #
++ # Extract VTK version and add it to documentation
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3dfb69558acf3f643194851b7f1c8756f86e238a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++Description: Fix FTBFS on PPC64: inlining failed in call to â€˜always_inline’
++Author: Dominique Belhachemi <domibel@debian.org>
++Forwarded: not-needed
++Last-Update: 2025-09-30
++
++--- vtk9.orig/Common/Core/vtkDataArrayMeta.h
+++++ vtk9/Common/Core/vtkDataArrayMeta.h
++@@ -32,7 +32,7 @@
++ #endif
++ 
++ #if (defined(VTK_ALWAYS_OPTIMIZE_ARRAY_ITERATORS) || !defined(VTK_DEBUG_RANGE_ITERATORS)) &&       \
++-  !defined(VTK_COMPILER_MSVC)
+++  !defined(VTK_COMPILER_MSVC) && !defined(__PPC64__)
++ #define VTK_ITER_INLINE VTK_ALWAYS_INLINE
++ #define VTK_ITER_ASSUME VTK_ASSUME_NO_ASSERT
++ #define VTK_ITER_OPTIMIZE_START VTK_ALWAYS_OPTIMIZE_START
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..206b73ed7d02f4b78475046370574828b16b39cb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++Description: HACK: vtkQWidgetTexture.cxx: Don't use vtkOpenGLCheckErrorMacro
++ Fixes building for Qt with OpenGL ES.
++Author: Adrian Bunk <bunk@debian.org>
++
++Index: VTK-9.3.0/GUISupport/Qt/vtkQWidgetTexture.cxx
++===================================================================
++--- VTK-9.3.0.orig/GUISupport/Qt/vtkQWidgetTexture.cxx
+++++ VTK-9.3.0/GUISupport/Qt/vtkQWidgetTexture.cxx
++@@ -7,7 +7,7 @@
++ #include "vtkOpenGLResourceFreeCallback.h"
++ #include "vtkOpenGLState.h"
++ 
++-#include "vtkOpenGLError.h"
+++//#include "vtkOpenGLError.h"
++ 
++ #include <QGraphicsProxyWidget>
++ #include <QGraphicsScene>
++@@ -88,7 +88,7 @@ vtkQWidgetTexture::vtkQWidgetTexture()
++       }
++ 
++       this->Create2DFromRaw(width, height, 4, VTK_UNSIGNED_CHAR, this->ImageBuffer);
++-      vtkOpenGLCheckErrorMacro("failed after QWidgeTexture repaint and draw");
+++      //vtkOpenGLCheckErrorMacro("failed after QWidgeTexture repaint and draw");
++     }
++   };
++ }
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b5ee1418784a73563e600c592b0de87b2e4d0cf6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++From c3f5613299c9dfdee66709674a6cafafb6576137 Mon Sep 17 00:00:00 2001
++From: Vagrant Cascadian <vagrant@reproducible-builds.org>
++Date: Tue, 15 Dec 2020 07:38:56 +0000
++Subject: [PATCH 2/2] doc_class2example.pl: Sort the parsers array.
++
++Thanks to Bernhard M. Wiedemann <bernhardout@lsmod.de>.
++---
++ Utilities/Doxygen/doc_class2example.pl | 1 +
++ 1 file changed, 1 insertion(+)
++
++Index: VTK-9.3.0/Utilities/Doxygen/doc_class2example.pl
++===================================================================
++--- VTK-9.3.0.orig/Utilities/Doxygen/doc_class2example.pl
+++++ VTK-9.3.0/Utilities/Doxygen/doc_class2example.pl
++@@ -261,6 +261,7 @@ if (exists $args{"parser"}) {
++ } else {
++     @parsers = keys %parsers;
++ }
+++@parsers = sort @parsers;
++ 
++ my $os_is_win = ($^O =~ m/(MSWin32|Cygwin)/i);
++ my $open_file_as_text = $os_is_win ? O_TEXT : 0;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..71f1423e8a1da2334c1d96b610b19fba06166597
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,13 @@@
++Description: Fix mpi4py search
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2021-09-17
++
++Index: VTK-9.3.0/Parallel/MPI4Py/vtk.module
++===================================================================
++--- VTK-9.3.0.orig/Parallel/MPI4Py/vtk.module
+++++ VTK-9.3.0/Parallel/MPI4Py/vtk.module
++@@ -16,4 +16,3 @@ DEPENDS
++ PRIVATE_DEPENDS
++   VTK::ParallelMPI
++   VTK::mpi
++-  VTK::mpi4py
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b7cc0e7684e741de52c83668936d3f829b8872cd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,17 @@@
++Description: Fix FTBFS
++Author: Anton Gladky <gladk@debian.org>
++Last-Update: 2021-11-14
++
++Index: VTK-9.3.0/CMake/vtkCompilerExtraFlags.cmake
++===================================================================
++--- VTK-9.3.0.orig/CMake/vtkCompilerExtraFlags.cmake
+++++ VTK-9.3.0/CMake/vtkCompilerExtraFlags.cmake
++@@ -3,7 +3,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
++   include(CheckCXXCompilerFlag)
++ 
++   # Additional warnings for GCC
++-  set(CMAKE_CXX_FLAGS_WARN "-Wnon-virtual-dtor -Wno-long-long -ansi -Wcast-align -Wchar-subscripts -Wall -Wextra -Wpointer-arith -Wformat-security -Woverloaded-virtual -Wshadow -Wunused-parameter -fno-check-new -fno-common -Werror=undef")
+++  set(CMAKE_CXX_FLAGS_WARN "-Wnon-virtual-dtor -Wno-long-long -ansi -Wcast-align -Wchar-subscripts -Wall -Wextra -Wpointer-arith -Wformat-security -Woverloaded-virtual -Wshadow -Wunused-parameter -fno-check-new -fno-common")
++ 
++   # This flag is useful as not returning from a non-void function is an error
++   # with MSVC, but it is not supported on all GCC compiler versions
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..74255a6cc10c1718e8be85486d25e6e813714a94
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,18 @@@
++Description: Avoid embedding build system information for reproducibility
++ Drop XDMF_SYSTEM definition from XdmfConfig.h.in to ensure reproducible builds.
++Forwarded: not-needed
++Author: Debian Science Maintainers
++
++Index: vtk9/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfConfig.h.in
++===================================================================
++--- vtk9.orig/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfConfig.h.in        2026-06-20 13:37:48.365606265 +0200
+++++ vtk9/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfConfig.h.in     2026-07-01 11:51:37.458361908 +0200
++@@ -32,8 +32,6 @@
++   #define XDMF_BYTE_ORDER_LITTLE
++ #endif
++ 
++-#define XDMF_SYSTEM ${CMAKE_SYSTEM}
++-
++ #cmakedefine XDMF_VOID_VALID
++ #ifndef XDMF_VOID_VALID
++     /* Force an Error */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..827f0683b2c2099d8d4819b08a2c553a0c6aea14
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,151 @@@
++Description: vtkGLTFDocumentLoader: Fix invalid access for CVE-2025-57106
++Origin: upstream, https://gitlab.kitware.com/vtk/vtk/-/commit/bd93e0533bfff2e8519ff557a0a8637a76e5fc1b https://gitlab.kitware.com/vtk/vtk/-/commit/04b2e001539d843c0f6b52239aa0fecd5b967dc7
++Author: Mathieu Westphal <mathieu.westphal@kitware.com>
++Bug-Debian: https://bugs.debian.org/1119821
++
++Index: vtk9/IO/Geometry/vtkGLTFDocumentLoader.cxx
++===================================================================
++--- vtk9.orig/IO/Geometry/vtkGLTFDocumentLoader.cxx
+++++ vtk9/IO/Geometry/vtkGLTFDocumentLoader.cxx
++@@ -315,37 +315,31 @@ struct vtkGLTFDocumentLoader::AccessorLo
++    * ExecuteBufferDataExtractionWorker, forwarding template types and parameters.
++    */
++   template <typename ArrayType, typename vtkArrayDispatchType>
++-  void DispatchWorkerExecutionByComponentType(
+++  bool DispatchWorkerExecutionByComponentType(
++     ArrayType* output, const Accessor& accessor, const BufferView& bufferView)
++   {
++     switch (accessor.ComponentTypeValue)
++     {
++       case ComponentType::BYTE:
++-        this->ExecuteBufferDataExtractionWorker<char, ArrayType, vtkArrayDispatchType>(
+++        return this->ExecuteBufferDataExtractionWorker<char, ArrayType, vtkArrayDispatchType>(
++           output, accessor, bufferView);
++-        break;
++       case ComponentType::UNSIGNED_BYTE:
++-        this->ExecuteBufferDataExtractionWorker<unsigned char, ArrayType, vtkArrayDispatchType>(
+++        return this->ExecuteBufferDataExtractionWorker<unsigned char, ArrayType, vtkArrayDispatchType>(
++           output, accessor, bufferView);
++-        break;
++       case ComponentType::SHORT:
++-        this->ExecuteBufferDataExtractionWorker<short, ArrayType, vtkArrayDispatchType>(
+++        return this->ExecuteBufferDataExtractionWorker<short, ArrayType, vtkArrayDispatchType>(
++           output, accessor, bufferView);
++-        break;
++       case ComponentType::UNSIGNED_SHORT:
++-        this->ExecuteBufferDataExtractionWorker<uint16_t, ArrayType, vtkArrayDispatchType>(
+++        return this->ExecuteBufferDataExtractionWorker<uint16_t, ArrayType, vtkArrayDispatchType>(
++           output, accessor, bufferView);
++-        break;
++       case ComponentType::UNSIGNED_INT:
++-        this->ExecuteBufferDataExtractionWorker<uint32_t, ArrayType, vtkArrayDispatchType>(
+++        return this->ExecuteBufferDataExtractionWorker<uint32_t, ArrayType, vtkArrayDispatchType>(
++           output, accessor, bufferView);
++-        break;
++       case ComponentType::FLOAT:
++-        this->ExecuteBufferDataExtractionWorker<float, ArrayType, vtkArrayDispatchType>(
+++        return this->ExecuteBufferDataExtractionWorker<float, ArrayType, vtkArrayDispatchType>(
++           output, accessor, bufferView);
++-        break;
++       default:
++-        return;
+++        return false;
++     }
++   }
++ 
++@@ -354,17 +348,17 @@ struct vtkGLTFDocumentLoader::AccessorLo
++    * forwarding template types and parameters.
++    */
++   template <typename ArrayType>
++-  void DispatchWorkerExecution(
+++  bool DispatchWorkerExecution(
++     ArrayType* output, const Accessor& accessor, const BufferView& bufferView)
++   {
++     if (accessor.Normalized || accessor.ComponentTypeValue == ComponentType::FLOAT)
++     {
++-      this->DispatchWorkerExecutionByComponentType<ArrayType, vtkArrayDispatch::Reals>(
+++      return this->DispatchWorkerExecutionByComponentType<ArrayType, vtkArrayDispatch::Reals>(
++         output, accessor, bufferView);
++     }
++     else
++     {
++-      this->DispatchWorkerExecutionByComponentType<ArrayType, vtkArrayDispatch::Integrals>(
+++      return this->DispatchWorkerExecutionByComponentType<ArrayType, vtkArrayDispatch::Integrals>(
++         output, accessor, bufferView);
++     }
++   }
++@@ -373,9 +367,15 @@ struct vtkGLTFDocumentLoader::AccessorLo
++    * Creates a new BufferDataExtractionWorker, initializes it and starts its execution
++    */
++   template <typename ComponentType, typename ArrayType, typename vtkArrayDispatchType>
++-  void ExecuteBufferDataExtractionWorker(
+++  bool ExecuteBufferDataExtractionWorker(
++     ArrayType* output, const Accessor& accessor, const BufferView& bufferView)
++   {
+++    if (bufferView.Buffer < 0 || bufferView.Buffer >= static_cast<int>(this->Buffers->size()))
+++    {
+++      vtkErrorWithObjectMacro(nullptr, "Invalid buffer index:" << bufferView.Buffer);
+++      return false;
+++    }
+++
++     // Create worker
++     BufferDataExtractionWorker<ComponentType> worker;
++     // Set worker parameters
++@@ -390,6 +390,7 @@ struct vtkGLTFDocumentLoader::AccessorLo
++ 
++     // Start worker execution
++     vtkArrayDispatch::DispatchByValueType<vtkArrayDispatchType>::Execute(output, worker);
+++    return true;
++   }
++ 
++   void Setup(int accessorId, vtkGLTFDocumentLoader::AccessorType expectedType)
++@@ -419,13 +420,18 @@ struct vtkGLTFDocumentLoader::AccessorLo
++     }
++ 
++     // Load base accessor data
++-    if (accessor.BufferView >= 0)
+++    if (accessor.BufferView >= 0 &&
+++      accessor.BufferView < static_cast<int>(this->BufferViews->size()))
++     {
++       const BufferView& bufferView = this->BufferViews->operator[](accessor.BufferView);
++ 
++       output->SetNumberOfComponents(GetNumberOfComponentsForType(this->ExpectedType));
++ 
++-      DispatchWorkerExecution<ArrayType>(output, accessor, bufferView);
+++      if (!DispatchWorkerExecution<ArrayType>(output, accessor, bufferView))
+++      {
+++        this->Result = false;
+++        return;
+++      }
++     }
++     else if (!accessor.IsSparse)
++     {
++@@ -457,7 +463,12 @@ struct vtkGLTFDocumentLoader::AccessorLo
++       mockIndicesAccessor.NumberOfComponents = 1;
++       mockIndicesAccessor.ComponentTypeValue = sparse.IndicesComponentType;
++ 
++-      DispatchWorkerExecution<vtkIntArray>(sparseIndices, mockIndicesAccessor, indicesBufferView);
+++      if (!DispatchWorkerExecution<vtkIntArray>(
+++            sparseIndices, mockIndicesAccessor, indicesBufferView))
+++      {
+++        this->Result = false;
+++        return;
+++      }
++ 
++       // Load values
++       vtkNew<ArrayType> sparseValues;
++@@ -467,8 +478,12 @@ struct vtkGLTFDocumentLoader::AccessorLo
++       mockValuesAccessor.Count = sparse.Count;
++       mockValuesAccessor.ByteOffset = sparse.ValuesByteOffset;
++ 
++-      DispatchWorkerExecution<ArrayType>(
++-        sparseValues.GetPointer(), mockValuesAccessor, valuesBufferView);
+++      if (!DispatchWorkerExecution<ArrayType>(
+++            sparseValues.GetPointer(), mockValuesAccessor, valuesBufferView))
+++      {
+++        this->Result = false;
+++        return;
+++      }
++ 
++       // Replace values into original (non sparse) array
++       for (int id = 0; id < sparseIndices->GetNumberOfValues(); id++)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..86a790e4b516614e7f7aafad9cb84b6a6ef8db02
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++Description: vtkGLTFDocumentLoader: Fix an invalid access for CVE-2025-57107
++Origin: upstream, https://gitlab.kitware.com/vtk/vtk/-/commit/0aafd788bb920719f875f16ea1149712aa9099df
++Author: Mathieu Westphal <mathieu.westphal@kitware.com>
++Bug-Debian: https://bugs.debian.org/1119822
++
++Index: vtk9/IO/Geometry/vtkGLTFDocumentLoader.cxx
++===================================================================
++--- vtk9.orig/IO/Geometry/vtkGLTFDocumentLoader.cxx
+++++ vtk9/IO/Geometry/vtkGLTFDocumentLoader.cxx
++@@ -704,6 +704,13 @@ bool vtkGLTFDocumentLoader::ExtractPrimi
++   // Load all attributes
++   for (auto& attributePair : primitive.AttributeIndices)
++   {
+++    if (attributePair.second < 0 ||
+++      attributePair.second >= static_cast<int>(this->InternalModel->Accessors.size()))
+++    {
+++      vtkErrorMacro("Invalid accessor index: " << attributePair.second);
+++      return false;
+++    }
+++
++     Accessor accessor = this->InternalModel->Accessors[attributePair.second];
++     // Create array
++     if (attributePair.first == "JOINTS_0")
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..579cba117b9c4d599727cd4b2be80bff85211998
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++Description: vtkGLTFImporter: Fix a invalid vector access CVE-2025-57108
++Origin: upstream, https://gitlab.kitware.com/vtk/vtk/-/commit/ce07e9aef763d20d0f425386eef84226936ff3f4
++Author: Mathieu Westphal <mathieu.westphal@kitware.com>
++Bug-Debian: https://bugs.debian.org/1119823
++
++Index: vtk9/IO/Import/vtkGLTFImporter.cxx
++===================================================================
++--- vtk9.orig/IO/Import/vtkGLTFImporter.cxx
+++++ vtk9/IO/Import/vtkGLTFImporter.cxx
++@@ -668,6 +668,13 @@ void vtkGLTFImporter::ImportActors(vtkRe
++     // Import node's geometry
++     if (node.Mesh >= 0)
++     {
+++      if (node.Mesh >= static_cast<int>(model->Meshes.size()))
+++      {
+++        vtkErrorMacro("Invalid node mesh index, aborting.");
+++        this->SetUpdateStatus(vtkImporter::UpdateStatusEnum::FAILURE);
+++        return;
+++      }
+++
++       auto mesh = model->Meshes[node.Mesh];
++       int primitiveId = 0;
++       for (auto primitive : mesh.Primitives)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1acef34c0d74d332d24853fb8d664c2d49b2dffb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,47 @@@
++Description: vtkGLTFImporter: Fix invalid access for CVE-2025-57109
++Origin: upstream, https://gitlab.kitware.com/vtk/vtk/-/commit/79375066e52db70e61dbaef7d941d642daf2dc09
++Author: Mathieu Westphal <mathieu.westphal@kitware.com>
++Bug-Debian: https://bugs.debian.org/1119824
++
++Index: vtk9/IO/Import/vtkGLTFImporter.cxx
++===================================================================
++--- vtk9.orig/IO/Import/vtkGLTFImporter.cxx
+++++ vtk9/IO/Import/vtkGLTFImporter.cxx
++@@ -649,6 +649,13 @@ void vtkGLTFImporter::ImportActors(vtkRe
++     // Get current node
++     const int nodeId = nodeIdStack.top();
++     nodeIdStack.pop();
+++    if (nodeId < 0 || nodeId >= static_cast<int>(model->Nodes.size()))
+++    {
+++      vtkErrorMacro("Invalid node index: " << nodeId << " , aborting.");
+++      this->SetUpdateStatus(vtkImporter::UpdateStatusEnum::FAILURE);
+++      return;
+++    }
+++
++     const auto& node = model->Nodes[nodeId];
++ 
++     // Add this node into the scene hierarchy
++@@ -670,7 +677,7 @@ void vtkGLTFImporter::ImportActors(vtkRe
++     {
++       if (node.Mesh >= static_cast<int>(model->Meshes.size()))
++       {
++-        vtkErrorMacro("Invalid node mesh index, aborting.");
+++        vtkErrorMacro("Invalid node mesh index: " << node.Mesh << " , aborting.");
++         this->SetUpdateStatus(vtkImporter::UpdateStatusEnum::FAILURE);
++         return;
++       }
++@@ -835,6 +842,14 @@ void vtkGLTFImporter::ImportCameras(vtkR
++     // Get current node
++     int nodeId = nodeIdStack.top();
++     nodeIdStack.pop();
+++
+++    if (nodeId < 0 || nodeId >= static_cast<int>(model->Nodes.size()))
+++    {
+++      vtkErrorMacro("Invalid nodeId: " << nodeId << ", aborting.");
+++      this->SetUpdateStatus(vtkImporter::UpdateStatusEnum::FAILURE);
+++      return;
+++    }
+++
++     const vtkGLTFDocumentLoader::Node& node = model->Nodes[nodeId];
++ 
++     // Import node's camera
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..18f115c91653869da877622bbc72d74d5f2cc9be
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++Description: Do not install VTK's bundled patches/99/FindHDF5.cmake
++ Debian's VTK doesn't contain the HDF5 library
++Author: Dominique Belhachemi <domibel@debian.org>
++Forwarded: not-needed
++Last-Update: 2026-09-12
++
++--- vtk9.orig/CMake/vtkInstallCMakePackage.cmake
+++++ vtk9/CMake/vtkInstallCMakePackage.cmake
++@@ -174,7 +174,6 @@ set(vtk_cmake_patch_files
++   patches/3.23/FindPython/Support.cmake
++   patches/3.23/FindPython3.cmake
++   patches/4.3/FindSQLite3.cmake
++-  patches/99/FindHDF5.cmake
++   patches/99/FindOpenGL.cmake
++   patches/99/FindX11.cmake)
++ set(vtk_cmake_wasm_files
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1bebc8a6dafecfd35a8fcca1dc2ffd149a32ed1a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++Description: Do not install internal h5hut config.h into public header directory
++ Move config.h from public headers to private_headers in vtkh5hut to avoid
++ defining generic autoconf PACKAGE_* macros in public header paths.
++Forwarded: not-needed
++Author: Debian Science Maintainers
++
++--- a/ThirdParty/h5hut/vtkh5hut/CMakeLists.txt
+++++ b/ThirdParty/h5hut/vtkh5hut/CMakeLists.txt
++@@ -51,8 +51,7 @@
++   src/include/H5Part_io.h
++   src/include/H5Part_model.h
++   src/include/vtk_h5hut_mangle.h
++-  "${CMAKE_CURRENT_BINARY_DIR}/src/include/vtkh5hut_export.h"
++-  "${CMAKE_CURRENT_BINARY_DIR}/src/include/config.h")
+++  "${CMAKE_CURRENT_BINARY_DIR}/src/include/vtkh5hut_export.h")
++ 
++ set(sources
++   src/h5core/h5_attachments.c
++@@ -78,6 +77,7 @@
++   src/h5core/h5u_model.c)
++ 
++ set(private_headers
+++  "${CMAKE_CURRENT_BINARY_DIR}/src/include/config.h"
++   src/h5core/private/h5_attribs.h
++   src/h5core/private/h5_const.h
++   src/h5core/private/h5_err.h
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b658e4b08dc0bd3a3ed924af328c029309897ee1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,17 @@@
++Description: fix invalid escape sequence in testing.py
++Origin: upstream, https://gitlab.kitware.com/vtk/vtk/-/commit/c0ec1384318bf93c0d2e8b046f702860d4a3195c
++Author: Dominique Belhachemi <db@domibel.de>
++Bug-Debian: https://bugs.debian.org/1142155
++Bug-Debian: https://bugs.debian.org/1079541
++
++--- a/Web/Python/vtkmodules/web/testing.py
+++++ b/Web/Python/vtkmodules/web/testing.py
++@@ -684,7 +684,7 @@
++     # The test name will be generated from the python script name, so
++     # match and capture a bunch of contiguous characters which are
++     # not '.', '\', or '/', followed immediately by the string '.py'.
++-    fnamePattern = re.compile("([^\.\/\\\]+)\.py")
+++    fnamePattern = re.compile(r"([^./\\]+)\.py")
++     fmatch = re.search(fnamePattern, testScriptFile)
++     if fmatch:
++         testName = fmatch.group(1)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..206dcb8672d9a31d8a72306cdfaa0388ade24e4d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,15 @@@
++Description: Convert non-UTF-8 character in Sequence.h to UTF-8
++ Fix national-encoding warning by replacing ISO-8859-1 umlaut with UTF-8.
++Forwarded: not-needed
++Author: Debian Science Maintainers
++
++--- a/ThirdParty/xdmf3/vtkxdmf3/core/loki/Sequence.h
+++++ b/ThirdParty/xdmf3/vtkxdmf3/core/loki/Sequence.h
++@@ -1,6 +1,6 @@
++ ////////////////////////////////////////////////////////////////////////////////
++ // The Loki Library
++-// Copyright (c) 2005 by Peter Kümmel
+++// Copyright (c) 2005 by Peter Kümmel
++ // Permission to use, copy, modify, distribute and sell this software for any 
++ //     purpose is hereby granted without fee, provided that the above copyright 
++ //     notice appear in all copies and that both that copyright notice and this 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4bb31ee48bb53dbeab5ba3b4cc1b3e2ee59971f6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,52 @@@
++Description: Fix segfault writing ascii .vtu files with implicit cell type arrays
++ NewIterator() returns nullptr for the implicit cell-type arrays used
++ since VTK 9.6, so WriteAsciiData() dereferenced that nullptr in
++ iter->Delete(). Merely guarding the Delete() is not enough: the
++ templated writer already returns early on a null iterator, so the array
++ is then written empty, and since WriteInlineData() discards the return
++ value the writer reports success for a file which has lost all of its
++ cells. Write such arrays through an explicit copy instead.
++ Closes yade FTBFS.
++Forwarded: not-yet
++Author: Anton Gladky <gladk@debian.org>
++
++Index: vtk9/IO/XML/vtkXMLWriter.cxx
++===================================================================
++--- vtk9.orig/IO/XML/vtkXMLWriter.cxx
+++++ vtk9/IO/XML/vtkXMLWriter.cxx
++@@ -34,6 +34,7 @@
++ #include "vtkOutputStream.h"
++ #include "vtkPointData.h"
++ #include "vtkPoints.h"
+++#include "vtkSmartPointer.h"
++ #include "vtkStdString.h"
++ #include "vtkStreamingDemandDrivenPipeline.h"
++ #include "vtkStringFormatter.h"
++@@ -1968,6 +1969,15 @@ int vtkXMLWriteAsciiData(ostream& os, it
++ int vtkXMLWriter::WriteAsciiData(vtkAbstractArray* a, vtkIndent indent)
++ {
++   vtkArrayIterator* iter = a->NewIterator();
+++  vtkSmartPointer<vtkAbstractArray> copy;
+++  if (!iter)
+++  {
+++    // Arrays which provide no iterator, such as the implicit arrays used since VTK 9.6
+++    // for uniform cell types, are written through an explicit copy.
+++    copy.TakeReference(vtkAbstractArray::CreateArray(a->GetDataType()));
+++    copy->DeepCopy(a);
+++    iter = copy->NewIterator();
+++  }
++   ostream& os = *(this->Stream);
++   int ret;
++   switch (a->GetDataType())
++@@ -1978,7 +1988,10 @@ int vtkXMLWriter::WriteAsciiData(vtkAbst
++       ret = 0;
++       break;
++   }
++-  iter->Delete();
+++  if (iter)
+++  {
+++    iter->Delete();
+++  }
++   return ret;
++ }
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6eb5a546b1f4b3307b257268e0ed1f38b72237a2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,37 @@@
++Description: Fix FTBFS with GDAL 3.13.0.
++ error: invalid conversion from 'CSLConstList' {aka 'const char* const*'} to 'char**' [-fpermissive]
++ .
++ From GDAL 3.13.0 NEWS:
++ "
++  * GDALMajorObject: Use CSLConstList for GetMetadata, SetMetadata (API breakage)
++ "
++Author: Bas Couwenberg <sebastic@debian.org>
++
++Index: vtk9/IO/GDAL/vtkGDALRasterReader.cxx
++===================================================================
++--- vtk9.orig/IO/GDAL/vtkGDALRasterReader.cxx 2026-06-20 15:53:59.251124679 +0200
+++++ vtk9/IO/GDAL/vtkGDALRasterReader.cxx      2026-06-20 15:53:59.249472560 +0200
++@@ -182,7 +182,11 @@
++     this->Reader->DriverShortName = GDALGetDriverShortName(driver);
++     this->Reader->DriverLongName = GDALGetDriverLongName(driver);
++ 
+++#if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(3, 13, 0)
+++    CSLConstList papszMetaData = GDALGetMetadata(this->GDALData, nullptr);
+++#else
++     char** papszMetaData = GDALGetMetadata(this->GDALData, nullptr);
+++#endif
++     if (CSLCount(papszMetaData) > 0)
++     {
++       for (int i = 0; papszMetaData[i] != nullptr; ++i)
++@@ -882,7 +886,11 @@
++ {
++   std::vector<std::string> domainMetaData;
++ 
+++#if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(3, 13, 0)
+++  CSLConstList papszMetadata = GDALGetMetadata(this->Impl->GDALData, domain.c_str());
+++#else
++   char** papszMetadata = GDALGetMetadata(this->Impl->GDALData, domain.c_str());
+++#endif
++ 
++   if (CSLCount(papszMetadata) > 0)
++   {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9ce1545a9930f44c3732dfc22b3d5d93aba9fbb3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++Description: Check for null pointer in vtkMatplotlibMathTextUtilities
++ Check if image scalar pointer is null before accessing to avoid crash on s390x.
++Author: Drew Parsons <dparsons@debian.org>
++Forwarded: not-needed
++
++Index: vtk9/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx
++===================================================================
++--- vtk9.orig/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx 2026-06-20 15:53:56.710944340 +0200
+++++ vtk9/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx      2026-06-20 15:53:56.707945159 +0200
++@@ -1023,6 +1023,12 @@
++         return false;
++       }
++ 
+++      if (ptr == nullptr)
+++      {
+++     vtkErrorMacro("image returned null ScalarPointer.");
+++     return false;
+++      }
+++
++       // Background, do not load python data
++       if (row > pythonRowStart || col < pythonColStart || row <= pythonRowEnd ||
++         col >= pythonColEnd)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..aaa86ab071febebcf994cb0b255f6dbde025ceeb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++Description: Fix ppc64/powerpc constexpr issue
++Author: Adrian Bunk <bunk@debian.org>
++Bug: https://gitlab.kitware.com/vtk/vtk/-/work_items/20090
++
++--- a/Infovis/Core/vtkWordCloud.cxx
+++++ b/Infovis/Core/vtkWordCloud.cxx
++@@ -654,7 +654,8 @@ void ArchimedesSpiral(std::vector<Extent
++ 
++   constexpr std::size_t N = 10000;
++   constexpr auto pi = 3.141592653589793238462643383279502884L; /* pi */
++-  constexpr double deltaAngle = pi * 20 / N;
+++  // not constexpr due to https://gitlab.kitware.com/vtk/vtk/-/work_items/20090
+++  const double deltaAngle = pi * 20 / N;
++   double maxX = -1000.0;
++   double minX = 1000.0;
++   double maxY = -1000.0;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8386f19b6342337eba262ff17b6297da288b0f32
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++Description: Avoid remote CDN script in GeometryViewer example HTML
++ Comment out remote lil-gui script inclusion to avoid privacy-breach Lintian warning.
++Forwarded: not-needed
++Author: Debian Science Maintainers
++
++--- a/Examples/Emscripten/Cxx/GeometryViewer/web/index.html
+++++ b/Examples/Emscripten/Cxx/GeometryViewer/web/index.html
++@@ -5,7 +5,7 @@
++ </head>
++ 
++ <body>
++-    <script src="https://cdn.jsdelivr.net/npm/lil-gui@0.20"></script>
+++    <!-- <script src="https://cdn.jsdelivr.net/npm/lil-gui@0.20"></script> -->
++     <script type="module" src="./index.js"></script>
++ </body>
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6325b90f0c60f7c5d456d1d5cd8cfe5c2c8a45cf
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,84 @@@
++Description: Allow a Python version suffix for Python-dependent libraries
++ Used to install these libraries for non-default Python versions.
++Author: Maximiliano Curia <marga@igalia.com>
++Forwarded: not-needed
++Last-Update: 2026-09-27
++Index: vtk9/Common/Python/CMakeLists.txt
++===================================================================
++--- vtk9.orig/Common/Python/CMakeLists.txt
+++++ vtk9/Common/Python/CMakeLists.txt
++@@ -2,5 +2,6 @@ set(classes
++   vtkPythonArchiver)
++ 
++ vtk_module_add_module(VTK::CommonPython
+++  LIBRARY_NAME_SUFFIX "${VTK_PYTHON_LIBRARY_NAME_SUFFIX}"
++   CLASSES ${classes})
++ vtk_add_test_mangling(VTK::CommonPython)
++Index: vtk9/Filters/Python/CMakeLists.txt
++===================================================================
++--- vtk9.orig/Filters/Python/CMakeLists.txt
+++++ vtk9/Filters/Python/CMakeLists.txt
++@@ -2,5 +2,6 @@ set(classes
++   vtkPythonAlgorithm)
++ 
++ vtk_module_add_module(VTK::FiltersPython
+++  LIBRARY_NAME_SUFFIX "${VTK_PYTHON_LIBRARY_NAME_SUFFIX}"
++   CLASSES ${classes})
++ vtk_add_test_mangling(VTK::FiltersPython)
++Index: vtk9/Parallel/MPI4Py/CMakeLists.txt
++===================================================================
++--- vtk9.orig/Parallel/MPI4Py/CMakeLists.txt
+++++ vtk9/Parallel/MPI4Py/CMakeLists.txt
++@@ -2,5 +2,6 @@ set(classes
++   vtkMPI4PyCommunicator)
++ 
++ vtk_module_add_module(VTK::ParallelMPI4Py
+++  LIBRARY_NAME_SUFFIX "${VTK_PYTHON_LIBRARY_NAME_SUFFIX}"
++   CLASSES ${classes})
++ vtk_add_test_mangling(VTK::ParallelMPI4Py)
++Index: vtk9/Rendering/Matplotlib/CMakeLists.txt
++===================================================================
++--- vtk9.orig/Rendering/Matplotlib/CMakeLists.txt
+++++ vtk9/Rendering/Matplotlib/CMakeLists.txt
++@@ -10,6 +10,7 @@ vtk_object_factory_configure(
++   EXPORT_MACRO "VTKRENDERINGMATPLOTLIB_EXPORT")
++ 
++ vtk_module_add_module(VTK::RenderingMatplotlib
+++  LIBRARY_NAME_SUFFIX "${VTK_PYTHON_LIBRARY_NAME_SUFFIX}"
++   CLASSES ${classes}
++   SOURCES ${vtk_object_factory_source}
++   PRIVATE_HEADERS ${vtk_object_factory_header})
++Index: vtk9/Rendering/PythonContext2D/CMakeLists.txt
++===================================================================
++--- vtk9.orig/Rendering/PythonContext2D/CMakeLists.txt
+++++ vtk9/Rendering/PythonContext2D/CMakeLists.txt
++@@ -2,5 +2,6 @@ set(classes
++   vtkPythonItem)
++ 
++ vtk_module_add_module(VTK::PythonContext2D
+++  LIBRARY_NAME_SUFFIX "${VTK_PYTHON_LIBRARY_NAME_SUFFIX}"
++   CLASSES ${classes})
++ vtk_add_test_mangling(VTK::PythonContext2D)
++Index: vtk9/Utilities/PythonInterpreter/CMakeLists.txt
++===================================================================
++--- vtk9.orig/Utilities/PythonInterpreter/CMakeLists.txt
+++++ vtk9/Utilities/PythonInterpreter/CMakeLists.txt
++@@ -6,6 +6,7 @@ set(headers
++   vtkPythonStdStreamCaptureHelper.h)
++ 
++ vtk_module_add_module(VTK::PythonInterpreter
+++  LIBRARY_NAME_SUFFIX "${VTK_PYTHON_LIBRARY_NAME_SUFFIX}"
++   CLASSES ${classes}
++   HEADERS ${headers})
++ 
++Index: vtk9/Web/Core/CMakeLists.txt
++===================================================================
++--- vtk9.orig/Web/Core/CMakeLists.txt
+++++ vtk9/Web/Core/CMakeLists.txt
++@@ -7,5 +7,6 @@ set(classes
++   vtkWebUtilities)
++ 
++ vtk_module_add_module(VTK::WebCore
+++  LIBRARY_NAME_SUFFIX "${VTK_PYTHON_LIBRARY_NAME_SUFFIX}"
++   CLASSES ${classes})
++ vtk_add_test_mangling(VTK::WebCore)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3dfc92768d0ba0d6a725817b9fce7998dc69bfa1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++10_matplotlib.patch
++20_do_not_link_against_socket.patch
++50_fix_python-modules_path.patch
++60_fix_path_perl.patch
++80_fix_ppc64_ftbfs.patch
++84_vtkQWidgetTexture_no_vtkOpenGLCheckErrorMacro.patch
++97_reproducible_builds.patch
++98_fix_mpi4py.py
++99_fix_ftbfs.patch
++100_add_missing_gl_header.patch
++matplotlib_nullptr_s390x.patch
++gdal-3.13.patch
++build_reproducibility.patch
++fix_xmlwriter_ascii_implicit_cellarray_segfault.patch
++dont_install_bundled_cmake_finders.patch
++fix_invalid_escape_sequence_testing.patch
++cve_2025_57106.patch
++cve_2025_57107.patch
++cve_2025_57108.patch
++cve_2025_57109.patch
++dont_install_h5hut_config_h.patch
++fix_sequence_h_utf8_encoding.patch
++privacy_breach_example_geometryviewer.patch
++python_version_library_suffix.patch
++ppc-constexpr.patch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..17c963f041767d4df1ffcd4ff759ebebfc804ab6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++usr/lib/python3
++usr/bin/pvtkpython
++usr/bin/vtkpython
++usr/bin/vtkWrapPython-9.6
++usr/bin/vtkWrapPythonInit-9.6
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..94b6e495695295dfa8be1f8ea53af1343946adca
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++debian/manpages/vtkWrapPython-9.6.1
++debian/manpages/vtkWrapPythonInit-9.6.1
++debian/manpages/pvtkpython.1
++debian/manpages/vtkpython.1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0dc03dd68e80f8e7b20b5c7800494c0851395e52
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++vtk python3-vtk9; PEP440
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0656380481c319c76220687918b5778c84069b87
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,254 @@@
++#!/usr/bin/make -f
++DEFAULT_PY3 = $(shell py3versions -d)
++OTHER_PY3 = $(filter-out $(DEFAULT_PY3),$(shell py3versions -s))
++
++export HOME = $(CURDIR)/debian/tmp-home
++export XDG_CACHE_HOME = $(CURDIR)/debian/tmp-cache
++$(shell mkdir -p $(HOME) $(XDG_CACHE_HOME))
++
++include /usr/share/dpkg/architecture.mk
++
++UPSTREAM_VERSION = $(shell dpkg-parsechangelog | awk '/^Version:/ { sub("-[^-]*$$", "", $$2); print $$2}')
++PYTHON_DIST_VERSION = $(word 1,$(subst +, ,$(UPSTREAM_VERSION)))
++UPSTREAM_VERSION_ABI = $(shell echo $(PYTHON_DIST_VERSION) | awk 'BEGIN { FS="."}; {print $$1"."$$2 }')
++
++
++nojava_archs=hppa
++nojava_os=hurd
++ifeq (,$(filter $(DEB_BUILD_ARCH), $(nojava_archs))$(filter $(DEB_BUILD_ARCH_OS), $(nojava_os)))
++  export JAVA_HOME=/usr/lib/jvm/default-java
++  extra_flags += -DVTK_WRAP_JAVA=ON
++  # increase java version from 8 to 11 to remove many warnings
++  extra_flags += -DVTK_JAVA_RELEASE_VERSION:STRING=11
++endif
++
++notbb_archs=
++notbb_os=hurd
++ifeq (,$(filter $(DEB_BUILD_ARCH), $(notbb_archs))$(filter $(DEB_BUILD_ARCH_OS), $(notbb_os)))
++  extra_flags += -DVTK_SMP_IMPLEMENTATION_TYPE:STRING="TBB"
++else
++  extra_flags += -DVTK_SMP_IMPLEMENTATION_TYPE:STRING="OpenMP"
++endif
++
++# Work around FTBFS on Alpha (assembler error "No lda !gpdisp!")
++ifneq (,$(filter $(DEB_HOST_ARCH),alpha))
++  export DEB_CXXFLAGS_MAINT_APPEND += -O1 -g1
++endif
++
++# sh4 has only 2 GB address space
++ifneq (,$(filter $(DEB_HOST_ARCH),sh4))
++  export DEB_CXXFLAGS_MAINT_APPEND += -g1
++endif
++
++BUILDDIR = $(CURDIR)/debian/build-$(DEFAULT_PY3)
++# Reserve max memory for one worker and p75 for the others
++ifeq ($(DEB_HOST_ARCH_BITS),32)
++  # 32-bit builds omit viskores and adios2
++  CONCURRENCY_MEM = 2.5G,1.1G
++else
++  # 64-bit builds include viskores
++  CONCURRENCY_MEM = 6.5G,2G
++endif
++CONCURRENCY = $(shell guess_concurrency --require-mem $(CONCURRENCY_MEM))
++
++%:
++      dh $@ --buildsystem=cmake --builddirectory=$(BUILDDIR) --max-parallel=$(CONCURRENCY)
++
++# Profiling compiler and build memory usage via debian/memory-tracker.py.
++# Disabled by default for production builds to avoid wrapper overhead and resource contention.
++# Enable by passing DEB_BUILD_OPTIONS=trackmem or setting TRACK_MEMORY=1.
++TRACK_MEMORY ?= 0
++ifneq (,$(filter trackmem,$(DEB_BUILD_OPTIONS)))
++  TRACK_MEMORY = 1
++endif
++ifneq (,$(filter notrackmem,$(DEB_BUILD_OPTIONS)))
++  TRACK_MEMORY = 0
++endif
++
++extra_flags +=  \
++      -DBUILD_SHARED_LIBS=ON \
++      -DHDF5_IS_PARALLEL=ON -DHDF5_PREFER_PARALLEL=YES \
++      -DVTK_BUILD_EXAMPLES=OFF \
++      -DVTK_BUILD_TESTING=OFF \
++      -DVTK_ENABLE_WRAPPING=ON \
++      -DVTK_EXTRA_COMPILER_WARNINGS=ON \
++      -DVTK_GROUP_ENABLE_Imaging:STRING=YES \
++      -DVTK_GROUP_ENABLE_MPI:STRING=YES \
++      -DVTK_GROUP_ENABLE_Qt:STRING=YES \
++      -DVTK_GROUP_ENABLE_Rendering:STRING=YES \
++      -DVTK_GROUP_ENABLE_StandAlone:STRING=YES \
++      -DVTK_GROUP_ENABLE_Views:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING=DONT_WANT \
++      -DVTK_MODULE_ENABLE_VTK_GUISupportQtSQL:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_InteractionImage:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_InteractionWidgets:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_IOGeoJSON:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_IOSQL:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_IOMySQL:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_IOPostgreSQL:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_ParallelMPI:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2=YES \
++      -DVTK_MODULE_ENABLE_VTK_RenderingExternal=YES \
++      -DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_RenderingQt:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_utf8:STRING=YES \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_eigen:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_expat:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_freetype:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_jpeg:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_jsoncpp:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_libproj:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_libxml2:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_lz4:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_lzma:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_netcdf:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_nlohmannjson:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_ogg:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_png:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_sqlite:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_theora:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_tiff:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_utf8:BOOL=ON \
++      -DVTK_MODULE_USE_EXTERNAL_VTK_zlib:BOOL=ON \
++      -DVTK_WRAP_PYTHON=ON \
++      -DVTK_USE_MPI=ON \
++      -DVTK_QT_VERSION=6
++
++# modules required by default built of paraview 6
++extra_flags +=  \
++      -DVTK_MODULE_ENABLE_VTK_RenderingParallelLIC=WANT \
++      -DVTK_MODULE_ENABLE_VTK_RenderingMatplotlib=WANT \
++      -DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOGDAL=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOXdmf2=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOFFMPEG=WANT \
++      -DVTK_MODULE_ENABLE_VTK_FiltersParallelDIY2=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOVPIC=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOAvmesh=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOH5part=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOH5Rage=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOOMF=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOParallelExodus=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOParallelLSDyna=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOPIO=WANT \
++      -DVTK_MODULE_ENABLE_VTK_IOTRUCHAS=WANT \
++      -DVTK_MODULE_ENABLE_VTK_FiltersParallelFlowPaths=WANT \
++      -DVTK_MODULE_ENABLE_VTK_FiltersParallelStatistics=WANT \
++      -DVTK_MODULE_ENABLE_VTK_cli11=WANT \
++      -DVTK_MODULE_ENABLE_VTK_RenderingParallel=WANT \
++      -DVTK_MODULE_ENABLE_VTK_RenderingVolumeAMR=WANT
++
++# modules required by trame
++extra_flags +=  \
++      -DVTK_MODULE_ENABLE_VTK_WebCore:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_WebGLExporter:STRING=YES \
++      -DVTK_MODULE_ENABLE_VTK_WebPython:STRING=YES \
++
++# 32-bit architectures don't support all features
++ifeq ($(DEB_HOST_ARCH_BITS),32)
++  # ParaView::RemotingViews optionally uses VTK::vtkviskores
++  # but (ThirdParty) viskores exhausts virtual memory on 32-bit architectures
++  extra_flags += -DVTK_MODULE_ENABLE_VTK_vtkviskores=NO
++else
++  # paraview wants IOXdmf3 (configured here as IOParallelXdmf3)
++  # and therefore it wants VTK:xdmf3,
++  # but vtk's copy of xdmf3 fails to build on 32-bit arches, see Bug#1126484
++  extra_flags += -DVTK_MODULE_ENABLE_VTK_IOParallelXdmf3=WANT
++
++  # Adios2 is only available on 64-bit systems
++  extra_flags += -DVTK_MODULE_ENABLE_VTK_IOADIOS2=WANT \
++      -DCMAKE_PREFIX_PATH="$(CMAKE_PREFIX_PATH);/usr/lib/$(DEB_HOST_MULTIARCH)/cmake/adios2/mpi"
++endif
++
++# alpha is 64-bit, but viskores still exceeds its available memory
++ifeq ($(DEB_HOST_ARCH),alpha)
++  extra_flags += -DVTK_MODULE_ENABLE_VTK_vtkviskores=NO
++endif
++
++ifeq ($(TRACK_MEMORY),1)
++  extra_flags += \
++      -DCMAKE_C_COMPILER_LAUNCHER=$(CURDIR)/debian/memory-tracker.py \
++      -DCMAKE_CXX_COMPILER_LAUNCHER=$(CURDIR)/debian/memory-tracker.py
++endif
++
++override_dh_auto_configure-indep:
++      dh_auto_configure -- -DVTK_BUILD_DOCUMENTATION=ON $(extra_flags) -DPython3_EXECUTABLE=/usr/bin/$(DEFAULT_PY3)
++
++override_dh_auto_configure-arch:
++      dh_auto_configure -- $(extra_flags) -DPython3_EXECUTABLE=/usr/bin/$(DEFAULT_PY3)
++
++execute_after_dh_auto_clean:
++      rm -rf $(CURDIR)/debian/build* $(CURDIR)/debian/tmp-*
++
++override_dh_auto_build-arch:
++ifeq ($(TRACK_MEMORY),1)
++      $(CURDIR)/debian/memory-tracker.py wrap --build-dir $(BUILDDIR) --tag "dh_auto_build" -- dh_auto_build
++else
++      dh_auto_build
++endif
++
++override_dh_auto_build-indep:
++      cd $(BUILDDIR) && make DoxygenDoc
++      find $(BUILDDIR)/Utilities/Doxygen/doc/html/ -name "*.md5" -delete
++
++override_dh_auto_install-arch:
++      dh_auto_install -X.pyc -X.pyo
++      # Reconfigure for the other versions, only the python parts are rebuilt
++      set -e; for py in $(OTHER_PY3); do \
++              dh_auto_configure -- $(extra_flags) -U'Python3_*' -U'_Python3_*' -DPython3_EXECUTABLE=/usr/bin/$$py \
++                      -DVTK_PYTHON_LIBRARY_NAME_SUFFIX=$${py#python} ; \
++              dh_auto_build ; \
++              dh_auto_install --destdir=$(CURDIR)/debian/tmp-$$py -X.pyc -X.pyo ; \
++              ext=$$($$py -c 'import sysconfig; print(sysconfig.get_config_var("EXT_SUFFIX"))') ; \
++              cd $(CURDIR)/debian/tmp-$$py && find . \( -name "*$$ext" -o -name "libvtk*$${py#python}-*.so.*" \) \
++                      -exec cp -a --parents {} $(CURDIR)/debian/tmp \; ; \
++              cd $(CURDIR) ; \
++      done
++ifneq ($(JAVA_HOME),)
++      mv $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/java/vtk.jar $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/java/vtk9.jar
++endif
++      sed -i -e "s/FATAL_ERROR/STATUS/g" $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/cmake/vtk-*/VTK-targets.cmake
++      install -d $(CURDIR)/debian/tmp/usr/lib/python3/dist-packages/vtk-$(PYTHON_DIST_VERSION).dist-info
++      printf '%s\n' \
++              'Metadata-Version: 2.1' \
++              'Name: vtk' \
++              'Version: $(PYTHON_DIST_VERSION)' \
++              > $(CURDIR)/debian/tmp/usr/lib/python3/dist-packages/vtk-$(PYTHON_DIST_VERSION).dist-info/METADATA
++
++override_dh_auto_install-indep:
++      DESTDIR=$(CURDIR)/debian/tmp cmake --install $(BUILDDIR) --component doxygen
++
++execute_after_dh_install:
++ifneq ($(DEB_HOST_ARCH_BITS),32)
++      dh_install -plibvtk9-dev usr/lib/*/pkgconfig/viskores.pc
++endif
++      rm -rf $(CURDIR)/debian/tmp/usr/share/licenses
++      find $(CURDIR)/debian/libvtk9-dev/ -name "*Qt*" -delete || true
++      find $(CURDIR)/debian/libvtk9-dev/usr/include/ -name "Q*" -delete || true
++      find $(CURDIR)/debian/libvtk9-dev/usr/include/ -name "vtkQWidget*" -delete || true
++      find $(CURDIR)/debian/libvtk9-dev/usr/include/ -name "vtkQImageToImageSource.h" -delete || true
++      find $(CURDIR)/debian/libvtk9-dev/usr/include/ \( -name "*.md" -o -name "LICENSE*" -o -name "README*" \) -delete || true
++      find $(CURDIR)/debian/libvtk$(UPSTREAM_VERSION_ABI)/ -name "*Qt*" -delete || true
++      find $(CURDIR)/debian/tmp/usr/share/doc/vtk-*/doxygen -name "_formulas.log" -delete || true
++      find $(CURDIR)/debian/build*/Utilities/Doxygen/doc/html -name "_formulas.log" -delete || true
++
++# Fix privacy breach
++execute_after_dh_installdocs-indep:
++      find $(CURDIR)/debian/vtk9-doc/ -type f -print0 | xargs -0 sed -i 's/https:\/\/raw\.githubusercontent\.com//g'
++      find $(CURDIR)/debian/vtk9-doc/ -type f -print0 | xargs -0 sed -i 's/https:\/\/cdn\.jsdelivr\.net\/npm\/mathjax@2/\/usr\/share\/javascript\/mathjax/g'
++
++# Track the versioned libboost*-dev at upstream version only, to avoid rebuilds
++# on boost-defaults/binNMU uploads.
++execute_before_dh_gencontrol:
++      boost_pkg=$$(dpkg-query -W -f='$${Package}\n' 'libboost*-dev' 2>/dev/null \
++              | sed -nE '/^libboost[0-9]+\.[0-9]+-dev$$/p' | sort -V | tail -n1) && \
++      boost_ver=$$(dpkg-query -W -f='$${Version}' "$$boost_pkg" | sed 's/-[^-]*$$//') && \
++      echo "boost:Depends=$$boost_pkg (>= $$boost_ver)" >> debian/libvtk9-dev.substvars
++
++ifeq ($(DEB_HOST_ARCH),sh4)
++override_dh_dwz:
++      dh_dwz -X libvtkCommonCore
++endif
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7ac0c85ad2a3e63605948f4a2ec51c41548d6f0f
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,177 @@@
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 3.28)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++
++EOF
++
++cat <<EOF > demo.cpp
++#include <iostream>
++ 
++#include <vtkVersion.h>
++#include <vtkBooleanOperationPolyDataFilter.h>
++ 
++#include <vtkActor.h>
++#include <vtkPolyDataReader.h>
++#include <vtkPolyDataMapper.h>
++#include <vtkProperty.h>
++#include <vtkRenderer.h>
++#include <vtkRenderWindow.h>
++#include <vtkRenderWindowInteractor.h>
++#include <vtkSmartPointer.h>
++#include <vtkSphereSource.h>
++ 
++int main(int argc, char *argv[])
++{
++  vtkSmartPointer<vtkPolyData> input1;
++  vtkSmartPointer<vtkPolyData> input2;
++ 
++  std::string operation("intersection");
++ 
++  if (argc == 4)
++    {
++    vtkSmartPointer<vtkPolyDataReader> reader1 =
++      vtkSmartPointer<vtkPolyDataReader>::New();
++    reader1->SetFileName(argv[1]);
++    reader1->Update();
++    input1 = reader1->GetOutput();
++ 
++    vtkSmartPointer<vtkPolyDataReader> reader2 =
++      vtkSmartPointer<vtkPolyDataReader>::New();
++    reader2->SetFileName(argv[3]);
++    reader2->Update();
++    input2 = reader2->GetOutput();
++ 
++    operation = argv[2];
++    }
++  else
++    {
++    vtkSmartPointer<vtkSphereSource> sphereSource1 =
++      vtkSmartPointer<vtkSphereSource>::New();
++    sphereSource1->SetCenter(.25, 0, 0);
++    sphereSource1->Update();
++    input1 = sphereSource1->GetOutput();
++ 
++    vtkSmartPointer<vtkSphereSource> sphereSource2 =
++      vtkSmartPointer<vtkSphereSource>::New();
++    sphereSource2->Update();
++    input2 = sphereSource2->GetOutput();
++ 
++    if (argc == 2)
++      {
++      operation = argv[1];
++      }
++    }
++ 
++  vtkSmartPointer<vtkPolyDataMapper> input1Mapper =
++    vtkSmartPointer<vtkPolyDataMapper>::New();
++#if VTK_MAJOR_VERSION <= 5
++  input1Mapper->SetInputConnection( input1->GetProducerPort() );
++#else
++  input1Mapper->SetInputData( input1 );
++#endif
++  input1Mapper->ScalarVisibilityOff();
++  vtkSmartPointer<vtkActor> input1Actor =
++    vtkSmartPointer<vtkActor>::New();
++  input1Actor->SetMapper( input1Mapper );
++  input1Actor->GetProperty()->SetColor(1,0,0);
++  input1Actor->SetPosition(
++    input1->GetBounds()[1]-input1->GetBounds()[0],
++    0, 0);
++  vtkSmartPointer<vtkPolyDataMapper> input2Mapper =
++    vtkSmartPointer<vtkPolyDataMapper>::New();
++#if VTK_MAJOR_VERSION <= 5
++  input2Mapper->SetInputConnection( input2->GetProducerPort() );
++#else
++  input2Mapper->SetInputData( input2 );
++#endif
++  input2Mapper->ScalarVisibilityOff();
++  vtkSmartPointer<vtkActor> input2Actor =
++    vtkSmartPointer<vtkActor>::New();
++  input2Actor->SetMapper( input2Mapper );
++  input2Actor->GetProperty()->SetColor(0,1,0);
++  input2Actor->SetPosition(
++    -(input2->GetBounds()[1]-input2->GetBounds()[0]),
++    0, 0);
++  vtkSmartPointer<vtkBooleanOperationPolyDataFilter> booleanOperation =
++    vtkSmartPointer<vtkBooleanOperationPolyDataFilter>::New();
++  if (operation == "union")
++    {
++      booleanOperation->SetOperationToUnion();
++    }
++  else if (operation == "intersection")
++    {
++      booleanOperation->SetOperationToIntersection();
++    }
++  else if (operation == "difference")
++    {
++      booleanOperation->SetOperationToDifference();
++    }
++  else
++    {
++    std::cout << "Unknown operation: " << operation << std::endl;
++    return EXIT_FAILURE;
++    }
++#if VTK_MAJOR_VERSION <= 5
++  booleanOperation->SetInputConnection( 0, input1->GetProducerPort() );
++  booleanOperation->SetInputConnection( 1, input2->GetProducerPort() );
++#else
++  booleanOperation->SetInputData( 0, input1 );
++  booleanOperation->SetInputData( 1, input2 );
++#endif
++  vtkSmartPointer<vtkPolyDataMapper> booleanOperationMapper =
++    vtkSmartPointer<vtkPolyDataMapper>::New();
++  booleanOperationMapper->SetInputConnection( booleanOperation->GetOutputPort() );
++  booleanOperationMapper->ScalarVisibilityOff();
++ 
++  vtkSmartPointer<vtkActor> booleanOperationActor =
++    vtkSmartPointer<vtkActor>::New();
++  booleanOperationActor->SetMapper( booleanOperationMapper );
++ 
++  vtkSmartPointer<vtkRenderer> renderer =
++    vtkSmartPointer<vtkRenderer>::New();
++  renderer->AddViewProp(input1Actor);
++  renderer->AddViewProp(input2Actor);
++  renderer->AddViewProp(booleanOperationActor);
++  renderer->SetBackground(.1, .2, .3);
++  vtkSmartPointer<vtkRenderWindow> renderWindow =
++    vtkSmartPointer<vtkRenderWindow>::New();
++  renderWindow->AddRenderer( renderer );
++ 
++  vtkSmartPointer<vtkRenderWindowInteractor> renWinInteractor =
++    vtkSmartPointer<vtkRenderWindowInteractor>::New();
++  renWinInteractor->SetRenderWindow( renderWindow );
++ 
++  return EXIT_SUCCESS;
++}
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++echo "run: OK"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..de81389748ad7e40a88ebc83b9147a0f21e3f80e
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,60 @@@
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 3.28)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <iostream>
++ 
++#include <vtkMath.h>
++ 
++int main(int, char *[])
++{
++  // Create two points.
++  double p0[3] = {0.0, 0.0, 0.0};
++  double p1[3] = {1.0, 1.0, 1.0};
++ 
++  // Find the squared distance between the points.
++  double squaredDistance = vtkMath::Distance2BetweenPoints(p0, p1);
++ 
++  // Take the square root to get the Euclidean distance between the points.
++  double distance = sqrt(squaredDistance);
++ 
++  // Output the results.
++  std::cout << "SquaredDistance = " << squaredDistance << std::endl;
++  std::cout << "Distance = " << distance << std::endl;
++ 
++  return EXIT_SUCCESS;
++}
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++echo "run: OK"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..67eb8247bcc6e221431f5e96ec882d73f0642987
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,83 @@@
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 3.28)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkImageData.h>
++#include <vtkPNGWriter.h>
++#include <vtkSmartPointer.h>
++#include <vtkImageCanvasSource2D.h>
++#include <vtkImageCast.h>
++ 
++int main(int argc, char *argv[])
++{
++  std::string outputFilename;
++  if( argc > 1)
++    {
++    outputFilename = argv[1];
++    }
++  else
++    {
++    outputFilename = "output.png";
++    }
++ 
++  int extent[6] = {0, 99, 0, 99, 0, 0};
++  vtkSmartPointer<vtkImageCanvasSource2D> imageSource =
++    vtkSmartPointer<vtkImageCanvasSource2D>::New();
++  imageSource->SetExtent(extent);
++  imageSource->SetScalarTypeToUnsignedChar();
++  imageSource->SetNumberOfScalarComponents(3);
++  imageSource->SetDrawColor(127, 45, 255);
++  imageSource->FillBox(0, 99, 0, 99);
++  imageSource->SetDrawColor(255,255,255);
++  imageSource->FillBox(40, 70, 20, 50);
++  imageSource->Update();
++ 
++  vtkSmartPointer<vtkImageCast> castFilter =
++    vtkSmartPointer<vtkImageCast>::New();
++  castFilter->SetOutputScalarTypeToUnsignedChar ();
++  castFilter->SetInputConnection(imageSource->GetOutputPort());
++  castFilter->Update();
++ 
++  vtkSmartPointer<vtkPNGWriter> writer =
++    vtkSmartPointer<vtkPNGWriter>::New();
++  writer->SetFileName(outputFilename.c_str());
++  writer->SetInputConnection(castFilter->GetOutputPort());
++  writer->Write();
++ 
++  return EXIT_SUCCESS;
++}
++
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++echo "run: OK"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..fecf194c49f57c3c7e21fbd4b646a715da4814cf
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,58 @@@
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 3.28)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkPolyData.h>
++#include <vtkSimplePointsWriter.h>
++#include <vtkSphereSource.h>
++#include <vtkSmartPointer.h>
++ 
++int main(int argc, char *argv[])
++{
++  vtkSmartPointer<vtkSphereSource> sphereSource =
++    vtkSmartPointer<vtkSphereSource>::New();
++  sphereSource->Update();
++ 
++  vtkSmartPointer<vtkSimplePointsWriter> writer =
++    vtkSmartPointer<vtkSimplePointsWriter>::New();
++  writer->SetFileName("test.xyz");
++  writer->SetInputConnection(sphereSource->GetOutputPort());
++  writer->Write();
++ 
++  return EXIT_SUCCESS;
++}
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++cat test.xyz
++echo "run: OK"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6389317014145a0bcf760465d51ef0ed039d1ced
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,72 @@@
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 3.28)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkVersion.h>
++#include <vtkCellArray.h>
++#include <vtkPoints.h>
++#include <vtkXMLPolyDataWriter.h>
++#include <vtkPolyData.h>
++#include <vtkSmartPointer.h>
++ 
++int main ( int, char *[] )
++{
++  vtkSmartPointer<vtkPoints> points = 
++    vtkSmartPointer<vtkPoints>::New();
++ 
++  for ( unsigned int i = 0; i < 10; ++i )
++    {
++    points->InsertNextPoint ( i, i, i );
++    }
++ 
++  vtkSmartPointer<vtkPolyData> polydata = 
++    vtkSmartPointer<vtkPolyData>::New();
++  polydata->SetPoints(points);
++ 
++  vtkSmartPointer<vtkXMLPolyDataWriter> writer =  
++    vtkSmartPointer<vtkXMLPolyDataWriter>::New();
++  writer->SetFileName("test.vtp");
++#if VTK_MAJOR_VERSION <= 5
++  writer->SetInput(polydata);
++#else
++  writer->SetInputData(polydata);
++#endif
++  writer->Write();
++ 
++  return EXIT_SUCCESS;
++}
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++cat test.vtp
++echo "run: OK"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e2822f3ed07e3b6fddb0b533cfb17b8eacba4502
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,130 @@@
++#!/bin/sh
++# autopkgtest check
++# (C) 2014 Anton Gladky
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 3.28)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <iostream>
++ 
++#include <vtkVersion.h>
++#include <vtkSmartPointer.h>
++#include <vtkTetra.h>
++#include <vtkCellArray.h>
++#include <vtkXMLUnstructuredGridReader.h>
++#include <vtkDataSetMapper.h>
++#include <vtkActor.h>
++#include <vtkRenderer.h>
++#include <vtkRenderWindow.h>
++#include <vtkRenderWindowInteractor.h>
++#include <vtkXMLUnstructuredGridWriter.h>
++#include <vtkUnstructuredGrid.h>
++#include <vtkPointData.h>
++#include <vtkVertexGlyphFilter.h>
++ 
++int main(int argc, char *argv[])
++{
++  if(argc != 2)
++    {
++    std::cout << "Required arguments: OutputFilename" << std::endl;
++    return EXIT_FAILURE;
++    }
++ 
++  std::string filename = argv[1];
++ 
++  vtkSmartPointer<vtkPoints> points =
++    vtkSmartPointer<vtkPoints>::New();
++  points->InsertNextPoint(0, 0, 0);
++  points->InsertNextPoint(1, 0, 0);
++  points->InsertNextPoint(1, 1, 0);
++  points->InsertNextPoint(0, 1, 1);
++ 
++   vtkSmartPointer<vtkTetra> tetra =
++    vtkSmartPointer<vtkTetra>::New();
++ 
++  tetra->GetPointIds()->SetId(0, 0);
++  tetra->GetPointIds()->SetId(1, 1);
++  tetra->GetPointIds()->SetId(2, 2);
++  tetra->GetPointIds()->SetId(3, 3);
++ 
++  vtkSmartPointer<vtkCellArray> cellArray =
++    vtkSmartPointer<vtkCellArray>::New();
++  cellArray->InsertNextCell(tetra);
++ 
++ 
++  vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid =
++    vtkSmartPointer<vtkUnstructuredGrid>::New();
++  unstructuredGrid->SetPoints(points);
++  unstructuredGrid->SetCells(VTK_TETRA, cellArray);
++ 
++  // Write file
++  vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer =
++    vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
++  writer->SetFileName(filename.c_str());
++#if VTK_MAJOR_VERSION <= 5
++  writer->SetInput(unstructuredGrid);
++#else
++  writer->SetInputData(unstructuredGrid);
++#endif
++  writer->Write();
++ 
++  vtkSmartPointer<vtkXMLUnstructuredGridReader> reader =
++    vtkSmartPointer<vtkXMLUnstructuredGridReader>::New();
++  reader->SetFileName(filename.c_str());
++  reader->Update();
++ 
++  vtkSmartPointer<vtkDataSetMapper> mapper =
++    vtkSmartPointer<vtkDataSetMapper>::New();
++  mapper->SetInputConnection(reader->GetOutputPort());
++ 
++  vtkSmartPointer<vtkActor> actor =
++    vtkSmartPointer<vtkActor>::New();
++  actor->SetMapper(mapper);
++ 
++  vtkSmartPointer<vtkRenderer> renderer =
++    vtkSmartPointer<vtkRenderer>::New();
++  vtkSmartPointer<vtkRenderWindow> renderWindow =
++    vtkSmartPointer<vtkRenderWindow>::New();
++  renderWindow->AddRenderer(renderer);
++  vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
++    vtkSmartPointer<vtkRenderWindowInteractor>::New();
++  renderWindowInteractor->SetRenderWindow(renderWindow);
++ 
++  renderer->AddActor(actor);
++  renderer->SetBackground(.3, .6, .3);
++ 
++  return EXIT_SUCCESS;
++}
++
++
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo a.vtu
++cat a.vtu
++echo "run: OK"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..800f6c20512d93e81c8a29fea5d8bc810cd2c4ba
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,7 @@@
++Tests: buildBoolean buildPoint buildVTU buildDistance buildPNG buildVTP writeVTUAsciiImplicitCellTypes
++Depends: libvtk9-dev, libvtk9-qt-dev, build-essential, cmake
++Restrictions: allow-stderr
++
++Tests: pythonMetadata
++Depends: python3-vtk9, python3-pip
++Restrictions: allow-stderr
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e12cee7d075874e63ed276f4b08d61448f7ee5b5
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,17 @@@
++#!/bin/sh
++set -eu
++
++deb_version="$(dpkg-query -W -f='${Version}' python3-vtk9)"
++
++# Strip the epoch and Debian revision, then any Debian repack suffix.
++upstream_version="${deb_version#*:}"
++upstream_version="${upstream_version%-*}"
++expected_version="${upstream_version%%+*}"
++
++actual_version="$(
++    python3 -m pip show vtk |
++        sed -n 's/^Version: //p'
++)"
++
++test -n "$actual_version"
++test "$actual_version" = "$expected_version"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8a4ac962977147bbc34b0ef4aa7a6427087e5c0e
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,88 @@@
++#!/bin/sh
++# autopkgtest check
++# regression test for a vtkXMLWriter::WriteAsciiData() segfault:
++# ascii .vtu output of a vtkUnstructuredGrid whose cells all share one
++# type (implicit cell-type array, VTK >= 9.6) used to dereference a
++# nullptr vtkArrayIterator.
++
++set -e
++
++export OMPI_MCA_orte_rsh_agent=/bin/false
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++mkdir src
++cd src
++
++cat <<EOF > CMakeLists.txt
++cmake_minimum_required(VERSION 3.28)
++project(demo)
++find_package(VTK REQUIRED)
++
++add_executable(demo demo.cpp)
++target_link_libraries(demo \${VTK_LIBRARIES})
++install(TARGETS demo DESTINATION bin)
++EOF
++
++cat <<EOF > demo.cpp
++#include <vtkCellArray.h>
++#include <vtkNew.h>
++#include <vtkPoints.h>
++#include <vtkUnstructuredGrid.h>
++#include <vtkXMLUnstructuredGridReader.h>
++#include <vtkXMLUnstructuredGridWriter.h>
++
++#include <iostream>
++
++int main()
++{
++  vtkNew<vtkPoints> points;
++  points->InsertNextPoint(0, 0, 0);
++  points->InsertNextPoint(1, 0, 0);
++  points->InsertNextPoint(2, 0, 0);
++
++  vtkNew<vtkCellArray> cells;
++  for (vtkIdType i = 0; i < 3; ++i)
++  {
++    cells->InsertNextCell(1, &i);
++  }
++
++  vtkNew<vtkUnstructuredGrid> grid;
++  grid->SetPoints(points);
++  // implicit (constant) cell-type array, since VTK 9.6
++  grid->SetCells(VTK_VERTEX, cells);
++
++  vtkNew<vtkXMLUnstructuredGridWriter> writer;
++  writer->SetInputData(grid);
++  writer->SetFileName("a.vtu");
++  writer->SetDataModeToAscii();
++  writer->Write();
++
++  // the cell types have to be written, not only not to crash: an empty types
++  // array makes the reader silently drop every cell of the file
++  vtkNew<vtkXMLUnstructuredGridReader> reader;
++  reader->SetFileName("a.vtu");
++  reader->Update();
++  const vtkIdType cellCount = reader->GetOutput()->GetNumberOfCells();
++  if (cellCount != 3)
++  {
++    std::cerr << "read back " << cellCount << " cells instead of 3\n";
++    return EXIT_FAILURE;
++  }
++
++  return EXIT_SUCCESS;
++}
++EOF
++
++cd ..
++mkdir build
++cd build
++cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
++make
++make install
++echo "build: OK"
++[ -x demo ]
++./demo
++cat a.vtu
++echo "run: OK"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0618033da7e7994c94cbc1d621b9b496ee93897f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,11 @@@
++Name: VTK
++Bug-Database: https://gitlab.kitware.com/vtk/vtk/issues
++Bug-Submit: https://gitlab.kitware.com/vtk/vtk/issues/new
++Documentation: https://vtk.org/documentation/
++Repository: https://gitlab.kitware.com/vtk/vtk.git
++Repository-Browse: https://gitlab.kitware.com/vtk/vtk
++Reference:
++  Author: Schroeder, Will and Martin, Ken and Lorensen, Bill
++  Year: 2006
++  Title: The Visualization Toolkit (4th ed.)
++  ISBN: 978-1-930934-19-1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..417e658bf307c35f23d9da0ba90c566a50abb5b8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,8 @@@
++Document: vtk9-doc
++Title: Visualization Toolkit (VTK 9) Documentation
++Author: Kitware Inc.
++Section: Science/Data Analysis
++
++Format: HTML
++Index: /usr/share/doc/vtk9/html/index.html
++Files: /usr/share/doc/vtk9/html/*.html
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7fe4311bd48a1679f8eb6b24a24e76114f8dc31c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++debian/tmp/usr/share/doc/vtk-9.6/doxygen
++debian/build-*/Utilities/Doxygen/doc/html
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b6c21c21bdedb054b5130999d63471330152ae28
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/share/javascript/jquery/jquery.js usr/share/doc/vtk9/html/jquery.js
++usr/share/javascript/jquery/jquery.js usr/share/doc/vtk9/doxygen/html/jquery.js
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a8d52f4de81349275f348d09e883a36ce7ae5360
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++Examples/
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3c8dc12bcd0a6731734332ff78d65833653ca41e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++usr/bin/vtkWrapHierarchy-9.6
++usr/bin/vtkProbeOpenGLVersion-9.6
++usr/bin/vtkWrapJavaScript-9.6
++usr/bin/vtkWrapSerDes-9.6
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2628fad8c87d56fe59cafa5f1562004659df5bc2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++debian/manpages/vtkWrapHierarchy-9.6.1
++debian/manpages/vtkProbeOpenGLVersion-9.6.1
++debian/manpages/vtkWrapJavaScript-9.6.1
++debian/manpages/vtkWrapSerDes-9.6.1
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a460953de659692f75e0921004a9216af950dc2e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,6 @@@
++Version: 5
++
++Template: GitLab
++Dist: https://gitlab.kitware.com/vtk/vtk
++Repacksuffix: +ds
++Dversion-Mangle: auto